Fix memory leak of gid_list in sudoers_policy_exec_setup() in the
error path. Coverity CID 104111.
This commit is contained in:
@@ -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);
|
len = snprintf(cp, glsize - (cp - gid_list), "%u", egid);
|
||||||
if (len < 0 || (size_t)len >= glsize - (cp - gid_list)) {
|
if (len < 0 || (size_t)len >= glsize - (cp - gid_list)) {
|
||||||
sudo_warnx(U_("internal error, %s overflow"), __func__);
|
sudo_warnx(U_("internal error, %s overflow"), __func__);
|
||||||
|
free(gid_list);
|
||||||
goto bad;
|
goto bad;
|
||||||
}
|
}
|
||||||
cp += len;
|
cp += len;
|
||||||
@@ -518,6 +519,7 @@ sudoers_policy_exec_setup(char *argv[], char *envp[], mode_t cmnd_umask,
|
|||||||
(unsigned int) grlist->gids[i]);
|
(unsigned int) grlist->gids[i]);
|
||||||
if (len < 0 || (size_t)len >= glsize - (cp - gid_list)) {
|
if (len < 0 || (size_t)len >= glsize - (cp - gid_list)) {
|
||||||
sudo_warnx(U_("internal error, %s overflow"), __func__);
|
sudo_warnx(U_("internal error, %s overflow"), __func__);
|
||||||
|
free(gid_list);
|
||||||
goto bad;
|
goto bad;
|
||||||
}
|
}
|
||||||
cp += len;
|
cp += len;
|
||||||
|
Reference in New Issue
Block a user