From: Pat Riehecky Date: Wed, 23 May 2018 20:42:09 +0000 (-0500) Subject: lwp: Fix possible memory leak from scan-build X-Git-Tag: upstream/1.8.3^2~12 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=4c5daaa26fbe2fd7e24ceba475e60e5e5c765e78;p=packages%2Fo%2Fopenafs.git lwp: Fix possible memory leak from scan-build It is possible for LWP_CreateProcess to return early. When it does, it should free up any memory it allocated before leaving scope. Reviewed-on: https://gerrit.openafs.org/13080 Reviewed-by: Andrew Deason Reviewed-by: Marcio Brito Barbosa Reviewed-by: Mark Vitale Tested-by: BuildBot Reviewed-by: Benjamin Kaduk (cherry picked from commit 55013a111394052a0253c87a744d03dfabd1be75) Change-Id: I9112d2039c7c58a707231568e2e84e0340407bac Reviewed-on: https://gerrit.openafs.org/13122 Tested-by: BuildBot Tested-by: PatRiehecky Reviewed-by: Joe Gorse Reviewed-by: Cheyenne Wills Reviewed-by: Andrew Deason Reviewed-by: Michael Meffie Reviewed-by: Stephan Wiesand --- diff --git a/src/lwp/lwp.c b/src/lwp/lwp.c index 9cf84b9a6..3ff9afc4b 100644 --- a/src/lwp/lwp.c +++ b/src/lwp/lwp.c @@ -342,6 +342,7 @@ LWP_CreateProcess(void *(*ep) (void *), int stacksize, int priority, void *parm, if ((stackmemory = malloc(stacksize + 7)) == NULL) #endif /* !AFS_DARWIN_ENV */ { + free(temp); Set_LWP_RC(); return LWP_ENOMEM; } @@ -353,6 +354,8 @@ LWP_CreateProcess(void *(*ep) (void *), int stacksize, int priority, void *parm, #endif /* !AFS_DARWIN_ENV */ #endif if (priority < 0 || priority >= MAX_PRIORITIES) { + free(temp); + free(stackmemory); Set_LWP_RC(); return LWP_EBADPRI; }