Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
28 lines
701 B
Diff
28 lines
701 B
Diff
diff --git a/commands.c b/commands.c
|
|
index a28e6da..0f76ac7 100644
|
|
--- a/commands.c
|
|
+++ b/commands.c
|
|
@@ -20,6 +20,7 @@
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include <unistd.h>
|
|
+#include <limits.h>
|
|
#include <errno.h>
|
|
#include "commands.h"
|
|
#include "platform.h"
|
|
@@ -150,7 +151,13 @@ build_symlink_name(const char *path_to_bin, const struct cmd_info *cmd)
|
|
{
|
|
static char link_name[FILENAME_MAX];
|
|
|
|
- snprintf(link_name, FILENAME_MAX, "%s/%s", path_to_bin, cmd->name);
|
|
+ int result = snprintf(link_name, PATH_MAX, "%s/%s", path_to_bin, cmd->name);
|
|
+
|
|
+ if (result >= PATH_MAX) {
|
|
+ link_name[PATH_MAX - 1] = '\0';
|
|
+ } else if (result < 0) {
|
|
+ link_name[0] = '\0';
|
|
+ }
|
|
|
|
return link_name;
|
|
}
|