]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
LWP: don't copy pid to a null pointer
authorDerrick Brashear <shadow@dementia.org>
Mon, 20 Dec 2010 21:36:42 +0000 (16:36 -0500)
committerStephan Wiesand <stephan.wiesand@desy.de>
Thu, 4 Apr 2013 08:05:49 +0000 (01:05 -0700)
In LWP_CreateProcess we take a pid. if it's null, don't crash.

Reviewed-on: http://gerrit.openafs.org/3556
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
(cherry picked from commit 5d218831f3186d0d1dc7d3b00dd4a3b6a4a8757c)

Change-Id: I96c0e2a8858fa929f0de22a774050aa63a200101
Reviewed-on: http://gerrit.openafs.org/9414
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
src/lwp/lwp.c

index 0b3f80b9c0f60b023365c5def587d0ec15e3f37c..35eb8cf3e84ff4077ff20c9616eeac1e30706fa5 100644 (file)
@@ -418,7 +418,8 @@ LWP_CreateProcess(void *(*ep) (void *), int stacksize, int priority, void *parm,
        /* End of gross hack */
 
        Set_LWP_RC();
-       *pid = temp;
+       if (pid)
+           *pid = temp;
        return 0;
     } else
        return LWP_EINIT;
@@ -484,7 +485,8 @@ LWP_CreateProcess2(void *(*ep) (void *), int stacksize, int priority, void *parm
        /* End of gross hack */
 
        Set_LWP_RC();
-       *pid = temp;
+       if (pid)
+           *pid = temp;
        return 0;
     } else
        return LWP_EINIT;
@@ -641,7 +643,8 @@ LWP_InitializeProcessSupport(int priority, PROCESS * pid)
     savecontext(Dispatcher, &temp->context, NULL);
     LWPANCHOR.outersp = temp->context.topstack;
     Set_LWP_RC();
-    *pid = temp;
+    if (pid)
+       *pid = temp;
 
     /* get minimum stack size from the environment. this allows the  administrator
      * to change the lwp stack dynamically without getting a new binary version.
@@ -1443,7 +1446,8 @@ LWP_CreateProcess(pthread_startroutine_t ep, int stacksize, int priority,
        free(lp);
        return LWP_ENOMEM;
     }
-    *pid = lp;
+    if (pid)
+       *pid = lp;
     return LWP_SUCCESS;
 }
 
@@ -1494,7 +1498,8 @@ LWP_InitializeProcessSupport(int priority, PROCESS * pid)
     int state;
 
     if (initialized) {
-       *pid = lp;
+       if (pid)
+           *pid = lp;
        return LWP_SUCCESS;
     }
 #ifndef LWP_NO_PRIORITIES
@@ -1519,7 +1524,8 @@ LWP_InitializeProcessSupport(int priority, PROCESS * pid)
     MUTEX_INIT(&lwp_mutex, "lwp", MUTEX_DEFAULT, 0);
     MUTEX_ENTER(&lwp_mutex);
     initialized = 1;
-    *pid = lp;
+    if (pid)
+       *pid = lp;
     return LWP_SUCCESS;
 }