Package: inetutils
Version: 1.5
Author: Guillem Jover <guillem@hadrons.org>
Status: applied
Description:
 Avoid a segfauly by not passing NULL to LOGCMD.


2006-10-21  Guillem Jover  <guillem@hadrons.org>

	* ftpd/ftpd.c (store): Do not overwrite `name' with gunique's return
	value, to avoid passing NULL to LOGCMD.


Index: ftpd/ftpd.c
===================================================================
RCS file: /sources/inetutils/inetutils/ftpd/ftpd.c,v
retrieving revision 1.56
diff -u -r1.56 ftpd.c
--- ftpd/ftpd.c	12 Oct 2006 09:57:27 -0000	1.56
+++ ftpd/ftpd.c	21 Oct 2006 13:15:28 -0000
@@ -934,11 +934,17 @@
   struct stat st;
   int (*closefunc) (FILE *);
 
-  if (unique && stat (name, &st) == 0
-      && (name = gunique (name)) == NULL)
+  if (unique && stat (name, &st) == 0)
     {
-      LOGCMD (*mode == 'w' ? "put" : "append", name);
-      return;
+      const char *name_unique = gunique (name);
+
+      if (name_unique)
+        name = name_unique;
+      else
+        {
+          LOGCMD (*mode == 'w' ? "put" : "append", name);
+          return;
+        }
     }
 
   if (restart_point)
