Author: markj
Date: Wed Mar 22 18:31:44 2017
New Revision: 315728
URL: https://svnweb.freebsd.org/changeset/base/315728

Log:
  Avoid accessing an uninitialized variable when vfork() fails.
  
  Reported by:  Miles Ohlrich <miles.ohlr...@isilon.com>
  MFC after:    1 week
  Sponsored by: Dell EMC Isilon

Modified:
  head/lib/libproc/proc_create.c

Modified: head/lib/libproc/proc_create.c
==============================================================================
--- head/lib/libproc/proc_create.c      Wed Mar 22 18:14:55 2017        
(r315727)
+++ head/lib/libproc/proc_create.c      Wed Mar 22 18:31:44 2017        
(r315728)
@@ -178,8 +178,7 @@ proc_create(const char *file, char * con
     void *child_arg, struct proc_handle **pphdl)
 {
        struct proc_handle *phdl;
-       int error = 0;
-       int status;
+       int error, status;
        pid_t pid;
 
        if (elf_version(EV_CURRENT) == EV_NONE)
@@ -217,16 +216,17 @@ proc_create(const char *file, char * con
 
                /* Check for an unexpected status. */
                if (!WIFSTOPPED(status)) {
-                       error = errno;
+                       error = EBUSY;
                        DPRINTFX("ERROR: child process %d status 0x%x", pid, 
status);
                        goto bad;
-               } else
-                       phdl->status = PS_STOP;
-       }
+               }
+               phdl->status = PS_STOP;
+
 bad:
-       if (error && phdl != NULL) {
-               proc_free(phdl);
-               phdl = NULL;
+               if (error != 0 && phdl != NULL) {
+                       proc_free(phdl);
+                       phdl = NULL;
+               }
        }
        *pphdl = phdl;
        return (error);
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to