]> granicus.if.org Git - sudo/commitdiff
Fix memory leak of gid_list in sudoers_policy_exec_setup() in the
authorTodd C. Miller <Todd.Miller@courtesan.com>
Fri, 6 May 2016 15:17:14 +0000 (09:17 -0600)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Fri, 6 May 2016 15:17:14 +0000 (09:17 -0600)
error path.  Coverity CID 104111.

plugins/sudoers/policy.c

index a28a57486945ace98ced1b9b25d00361e03297ed..69b04c5ec596cdbb6c5df23075cc3a036e6df2d9 100644 (file)
@@ -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;