mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-12-15 08:20:16 +08:00
Fix memory leaks in failure paths in buildACLCommands and parseAclItem.
This is currently only cosmetic, since all the call sites just curl up and die in event of a failure return. It might be important for some future use-case, though, and in any case it quiets warnings from the clang static analyzer (as reported by Anna Zaks). Josh Kupershmidt
This commit is contained in:
parent
8fcbfea788
commit
d73b7f973d
@ -600,7 +600,10 @@ buildACLCommands(const char *name, const char *subname,
|
||||
{
|
||||
if (!parseAclItem(aclitems[i], type, name, subname, remoteVersion,
|
||||
grantee, grantor, privs, privswgo))
|
||||
{
|
||||
free(aclitems);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (grantor->len == 0 && owner)
|
||||
printfPQExpBuffer(grantor, "%s", owner);
|
||||
@ -789,7 +792,10 @@ parseAclItem(const char *item, const char *type,
|
||||
/* user or group name is string up to = */
|
||||
eqpos = copyAclUserName(grantee, buf);
|
||||
if (*eqpos != '=')
|
||||
{
|
||||
free(buf);
|
||||
return false;
|
||||
}
|
||||
|
||||
/* grantor may be listed after / */
|
||||
slpos = strchr(eqpos + 1, '/');
|
||||
@ -798,7 +804,10 @@ parseAclItem(const char *item, const char *type,
|
||||
*slpos++ = '\0';
|
||||
slpos = copyAclUserName(grantor, slpos);
|
||||
if (*slpos != '\0')
|
||||
{
|
||||
free(buf);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
resetPQExpBuffer(grantor);
|
||||
|
Loading…
Reference in New Issue
Block a user