From 4c5daaa26fbe2fd7e24ceba475e60e5e5c765e78 Mon Sep 17 00:00:00 2001 From: Pat Riehecky Date: Wed, 23 May 2018 15:42:09 -0500 Subject: [PATCH] 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 --- src/lwp/lwp.c | 3 +++ 1 file changed, 3 insertions(+) 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; } -- 2.39.5