Hi Philipp,

thanks for the bug report.  Your proposal makes sense, here is a debdiff
(against the ubuntu package, but the source file should be identical)
which fixes it for me.  Does it work for you?

diff -u shadow-4.1.5.1/debian/changelog shadow-4.1.5.1/debian/changelog
--- shadow-4.1.5.1/debian/changelog
+++ shadow-4.1.5.1/debian/changelog
@@ -1,3 +1,10 @@
+shadow (1:4.1.5.1-1ubuntu4~userns2pwdir1) raring; urgency=low
+
+  * strdup_static_pwdir: if using the static char* for pw_dir, strdup it so
+    pw_free() can be used. (Closes: #691459)
+
+ -- Serge Hallyn <[email protected]>  Tue, 05 Mar 2013 12:04:21 -0600
+
 shadow (1:4.1.5.1-1ubuntu4~userns2) raring; urgency=low
 
   * userns/12_userns_selinuxlibs: fix FTBFS (provided debian/rules actually
diff -u shadow-4.1.5.1/debian/patches/series 
shadow-4.1.5.1/debian/patches/series
--- shadow-4.1.5.1/debian/patches/series
+++ shadow-4.1.5.1/debian/patches/series
@@ -33,0 +34,2 @@
+
+strdup_static_pwdir
only in patch2:
unchanged:
--- shadow-4.1.5.1.orig/debian/patches/strdup_static_pwdir
+++ shadow-4.1.5.1/debian/patches/strdup_static_pwdir
@@ -0,0 +1,17 @@
+Description: strdup the static char* temp_pw_dir
+ That way we can continue to use pw_free() without segving.
+Bug: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=691459
+
+Index: shadow-4.1.5.1/libmisc/setupenv.c
+===================================================================
+--- shadow-4.1.5.1.orig/libmisc/setupenv.c     2013-03-05 12:01:35.126218100 
-0600
++++ shadow-4.1.5.1/libmisc/setupenv.c  2013-03-05 12:02:31.334217148 -0600
+@@ -228,7 +228,7 @@ void setup_env (struct passwd *info)
+                       exit (EXIT_FAILURE);
+               }
+               (void) puts (_("No directory, logging in with HOME=/"));
+-              info->pw_dir = temp_pw_dir;
++              info->pw_dir = strdup(temp_pw_dir);
+       }
+ 
+       /*


-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to