From: Todd C. Miller Date: Fri, 6 May 2016 15:17:14 +0000 (-0600) Subject: Fix memory leak of gid_list in sudoers_policy_exec_setup() in the X-Git-Tag: SUDO_1_8_17^2~102 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=61c53c8e668f48e6841e70b14a20aea6747a263d;p=sudo Fix memory leak of gid_list in sudoers_policy_exec_setup() in the error path. Coverity CID 104111. --- diff --git a/plugins/sudoers/policy.c b/plugins/sudoers/policy.c index a28a57486..69b04c5ec 100644 --- a/plugins/sudoers/policy.c +++ b/plugins/sudoers/policy.c @@ -509,6 +509,7 @@ sudoers_policy_exec_setup(char *argv[], char *envp[], mode_t cmnd_umask, len = snprintf(cp, glsize - (cp - gid_list), "%u", egid); if (len < 0 || (size_t)len >= glsize - (cp - gid_list)) { sudo_warnx(U_("internal error, %s overflow"), __func__); + free(gid_list); goto bad; } cp += len; @@ -518,6 +519,7 @@ sudoers_policy_exec_setup(char *argv[], char *envp[], mode_t cmnd_umask, (unsigned int) grlist->gids[i]); if (len < 0 || (size_t)len >= glsize - (cp - gid_list)) { sudo_warnx(U_("internal error, %s overflow"), __func__); + free(gid_list); goto bad; } cp += len;