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;