[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#750480: shadow: FTBFS on hurd-i386



Source: shadow
Version: 4.2-2
Severity: important
Tags: patch
User: debian-hurd@lists.debian.org
Usertags: hurd

Hi,

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)

Thanks!
Index: shadow-4.2/src/newuidmap.c
===================================================================
--- shadow-4.2.orig/src/newuidmap.c
+++ shadow-4.2/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))) {
Index: shadow-4.2/src/newgidmap.c
===================================================================
--- shadow-4.2.orig/src/newgidmap.c
+++ shadow-4.2/src/newgidmap.c
@@ -95,7 +95,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;
@@ -121,6 +121,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))) {

Reply to: