Fix minor memory leaks in pg_dump.
authorTom Lane <[email protected]>
Wed, 12 Feb 2025 20:46:31 +0000 (15:46 -0500)
committerTom Lane <[email protected]>
Wed, 12 Feb 2025 20:46:31 +0000 (15:46 -0500)
Coverity reported the two oversights in getPublicationTables.
Valgrind found the one in determineNotNullFlags.

The mistakes in getPublicationTables seem too minor to be worth
back-patching.  determineNotNullFlags could be run enough times
to matter, but that code is new in v18.  So, no back-patch.

src/bin/pg_dump/pg_dump.c

index ca15b40939cb9a433d11098e58d6fcc550793245..30dfda8c3ffc7a87f628458045382eddfd12860e 100644 (file)
@@ -4682,6 +4682,8 @@ getPublicationTables(Archive *fout, TableInfo tblinfo[], int numTables)
                appendPQExpBufferStr(attribs, fmtId(attnames[k]));
            }
            pubrinfo[j].pubrattrs = attribs->data;
+           free(attribs);      /* but not attribs->data */
+           free(attnames);
        }
        else
            pubrinfo[j].pubrattrs = NULL;
@@ -9424,6 +9426,7 @@ determineNotNullFlags(Archive *fout, PGresult *res, int r,
                    tbinfo->notnull_constrs[j] =
                        pstrdup(PQgetvalue(res, r, i_notnull_name));
                }
+               free(default_name);
            }
        }
    }