Check version before allocating PQExpBuffer
authorStephen Frost <sfrost@snowman.net>
Mon, 15 Jul 2013 01:17:59 +0000 (21:17 -0400)
committerStephen Frost <sfrost@snowman.net>
Mon, 15 Jul 2013 01:17:59 +0000 (21:17 -0400)
In pg_dump.c:getEventTriggers, check what major version we are on
before calling createPQExpBuffer() to avoid leaking that bit of
memory.

Leak discovered by the Coverity scanner.

Back-patch to 9.3 where support for dumping event triggers was
added.

src/bin/pg_dump/pg_dump.c

index f40961ffceae37b19a5ba93760f207a15e79716d..dfa3ff7da54abdd8385eda5d5d78bc2d4311ec62 100644 (file)
@@ -5746,7 +5746,7 @@ EventTriggerInfo *
 getEventTriggers(Archive *fout, int *numEventTriggers)
 {
    int         i;
-   PQExpBuffer query = createPQExpBuffer();
+   PQExpBuffer query;
    PGresult   *res;
    EventTriggerInfo *evtinfo;
    int         i_tableoid,
@@ -5766,6 +5766,8 @@ getEventTriggers(Archive *fout, int *numEventTriggers)
        return NULL;
    }
 
+   query = createPQExpBuffer();
+
    /* Make sure we are in proper schema */
    selectSourceSchema(fout, "pg_catalog");