mirror of
https://github.com/postgres/postgres.git
synced 2026-04-21 22:28:15 -04:00
Cleanup minor pg_dump memory leaks
In dumputils, we may have successfully parsed the acls when we discover that we can't parse the reverse ACLs and then return- check and free aclitems if that happens. In dumpTableSchema, move ftoptions and srvname under the relkind != RELKIND_VIEW branch (since they're only used there) and then check if they've been allocated and, if so, free them at the end of that block. Pointed out by Pavel Raiskup, though I didn't use those patches. Discussion: https://postgr.es/m/2183976.vkCJMhdhmF@nb.usersys.redhat.com
This commit is contained in:
parent
a243c55326
commit
369d494a4f
2 changed files with 10 additions and 6 deletions
|
|
@ -95,6 +95,8 @@ buildACLCommands(const char *name, const char *subname, const char *nspname,
|
|||
{
|
||||
if (!parsePGArray(racls, &raclitems, &nraclitems))
|
||||
{
|
||||
if (aclitems)
|
||||
free(aclitems);
|
||||
if (raclitems)
|
||||
free(raclitems);
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -15303,8 +15303,6 @@ dumpTableSchema(Archive *fout, TableInfo *tbinfo)
|
|||
int actual_atts; /* number of attrs in this CREATE statement */
|
||||
const char *reltypename;
|
||||
char *storage;
|
||||
char *srvname;
|
||||
char *ftoptions;
|
||||
int j,
|
||||
k;
|
||||
|
||||
|
|
@ -15361,6 +15359,9 @@ dumpTableSchema(Archive *fout, TableInfo *tbinfo)
|
|||
}
|
||||
else
|
||||
{
|
||||
char *ftoptions = NULL;
|
||||
char *srvname = NULL;
|
||||
|
||||
switch (tbinfo->relkind)
|
||||
{
|
||||
case RELKIND_FOREIGN_TABLE:
|
||||
|
|
@ -15397,13 +15398,9 @@ dumpTableSchema(Archive *fout, TableInfo *tbinfo)
|
|||
}
|
||||
case RELKIND_MATVIEW:
|
||||
reltypename = "MATERIALIZED VIEW";
|
||||
srvname = NULL;
|
||||
ftoptions = NULL;
|
||||
break;
|
||||
default:
|
||||
reltypename = "TABLE";
|
||||
srvname = NULL;
|
||||
ftoptions = NULL;
|
||||
}
|
||||
|
||||
numParents = tbinfo->numParents;
|
||||
|
|
@ -15951,6 +15948,11 @@ dumpTableSchema(Archive *fout, TableInfo *tbinfo)
|
|||
tbinfo->attfdwoptions[j]);
|
||||
}
|
||||
}
|
||||
|
||||
if (ftoptions)
|
||||
free(ftoptions);
|
||||
if (srvname)
|
||||
free(srvname);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
|||
Loading…
Reference in a new issue