Protect against NULL pointer to set_progname
authorKevin Klues <klueska@cs.berkeley.edu>
Sat, 11 Jul 2015 20:32:05 +0000 (13:32 -0700)
committerBarret Rhoden <brho@cs.berkeley.edu>
Tue, 14 Jul 2015 14:33:16 +0000 (10:33 -0400)
If name is NULL, we set the name to DEFAULT_PROGNAME. Right now
DEFAULT_PROGNAME is just "".  We could consider adding a default name
such as "unknown" or something similar, but this would conflict with any
valid programs with that same name...

kern/include/process.h
kern/src/process.c

index ad60e7d..bf8e3d5 100644 (file)
@@ -50,6 +50,8 @@
                               (state)==PROC_RUNNING_M  ? "RUNNING_M"  : \
                                                          "UNKNOWN")
 
+#define DEFAULT_PROGNAME ""
+
 #include <env.h>
 
 /* Can use a htable iterator to iterate through all active procs */
index cac3977..cd1409c 100644 (file)
@@ -253,6 +253,9 @@ void proc_init(void)
 
 void proc_set_progname(struct proc *p, char *name)
 {
+       if (name == NULL)
+               name = DEFAULT_PROGNAME;
+
        /* might have an issue if a dentry name isn't null terminated, and we'd get
         * extra junk up to progname_sz. */
        strncpy(p->progname, name, PROC_PROGNAME_SZ);