From 4911773b7746ee86229f6a552a806b8e756b74c9 Mon Sep 17 00:00:00 2001 From: Serge Hallyn Date: Thu, 26 Jun 2014 16:48:56 -0500 Subject: [PATCH] From: Svante Signell Currently shadow fails to build from source and is flagged as out-of-date. This is due to a usage of PATH_MAX, which is not defined on GNU/Hurd. The attached patch solves this problem by allocating a fixed number of 32 bytes for the string proc_dir_name in files src/procuidmap.c and src/procgidmap.c. (In fact only 18 bytes are needed) Signed-off-by: Serge Hallyn --- src/newgidmap.c | 3 ++- src/newuidmap.c | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/newgidmap.c b/src/newgidmap.c index 1527a615..a532b457 100644 --- a/src/newgidmap.c +++ b/src/newgidmap.c @@ -94,7 +94,7 @@ static void usage(void) */ int main(int argc, char **argv) { - char proc_dir_name[PATH_MAX]; + char proc_dir_name[32]; char *target_str; pid_t target, parent; int proc_dir_fd; @@ -120,6 +120,7 @@ int main(int argc, char **argv) if (!get_pid(target_str, &target)) usage(); + /* max string length is 6 + 10 + 1 + 1 = 18, allocate 32 bytes */ written = snprintf(proc_dir_name, sizeof(proc_dir_name), "/proc/%u/", target); if ((written <= 0) || (written >= sizeof(proc_dir_name))) { diff --git a/src/newuidmap.c b/src/newuidmap.c index 69c50940..5150078b 100644 --- a/src/newuidmap.c +++ b/src/newuidmap.c @@ -94,7 +94,7 @@ void usage(void) */ int main(int argc, char **argv) { - char proc_dir_name[PATH_MAX]; + char proc_dir_name[32]; char *target_str; pid_t target, parent; int proc_dir_fd; @@ -120,6 +120,7 @@ int main(int argc, char **argv) if (!get_pid(target_str, &target)) usage(); + /* max string length is 6 + 10 + 1 + 1 = 18, allocate 32 bytes */ written = snprintf(proc_dir_name, sizeof(proc_dir_name), "/proc/%u/", target); if ((written <= 0) || (written >= sizeof(proc_dir_name))) {