]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Fix mismatched deallocation functions
authorPeter Eisentraut <peter@eisentraut.org>
Wed, 1 Jul 2026 11:48:45 +0000 (13:48 +0200)
committerPeter Eisentraut <peter@eisentraut.org>
Wed, 1 Jul 2026 11:50:08 +0000 (13:50 +0200)
In fe_memutils.h, we have various allocation functions beginning with
either pg_ or p.  The pg_ functions have a matching pg_free() for
freeing memory, while the p functions use pfree().  In some cases, we
were allocating memory with one set of functions while using the wrong
deallocation functions.  This creates a tiny bit of mental overhead
when reading code.  Matching up allocation and deallocation functions
makes it easier to analyze memory handling in a code path.

Author: Tristan Partin <tristan@partin.io>
Reviewed-by: Zsolt Parragi <zsolt.parragi@percona.com>
Discussion: https://www.postgresql.org/message-id/flat/DIBZE2B6SVF2.28R3EQTYJSWIG@partin.io

47 files changed:
contrib/oid2name/oid2name.c
src/bin/initdb/initdb.c
src/bin/pg_basebackup/pg_basebackup.c
src/bin/pg_basebackup/pg_createsubscriber.c
src/bin/pg_basebackup/streamutil.c
src/bin/pg_combinebackup/load_manifest.c
src/bin/pg_combinebackup/pg_combinebackup.c
src/bin/pg_combinebackup/reconstruct.c
src/bin/pg_ctl/pg_ctl.c
src/bin/pg_dump/compress_gzip.c
src/bin/pg_dump/compress_lz4.c
src/bin/pg_dump/compress_none.c
src/bin/pg_dump/connectdb.c
src/bin/pg_dump/dumputils.c
src/bin/pg_dump/parallel.c
src/bin/pg_dump/pg_backup_archiver.c
src/bin/pg_dump/pg_backup_custom.c
src/bin/pg_dump/pg_backup_db.c
src/bin/pg_dump/pg_backup_directory.c
src/bin/pg_dump/pg_backup_tar.c
src/bin/pg_dump/pg_dump.c
src/bin/pg_dump/pg_dump_sort.c
src/bin/pg_dump/pg_dumpall.c
src/bin/pg_upgrade/check.c
src/bin/pg_upgrade/function.c
src/bin/pg_verifybackup/pg_verifybackup.c
src/bin/pgbench/pgbench.c
src/bin/psql/command.c
src/bin/psql/common.c
src/bin/psql/describe.c
src/bin/psql/help.c
src/bin/psql/input.c
src/bin/psql/large_obj.c
src/bin/psql/mainloop.c
src/bin/psql/prompt.c
src/bin/psql/startup.c
src/bin/psql/stringutils.c
src/bin/psql/tab-complete.in.c
src/bin/scripts/vacuuming.c
src/common/logging.c
src/fe_utils/print.c
src/interfaces/ecpg/test/pg_regress_ecpg.c
src/test/isolation/isolation_main.c
src/test/isolation/isolationtester.c
src/test/modules/libpq_pipeline/libpq_pipeline.c
src/test/regress/pg_regress.c
src/test/regress/pg_regress_main.c

index 1e9efcd395326844d50a8c4deb5cb2c95971618c..fbe923370ae50ae38648885c0841fa7460edb4ac 100644 (file)
@@ -427,7 +427,7 @@ sql_exec(PGconn *conn, const char *todo, bool quiet)
                memset(pad, '-', l);
                pad[l] = '\0';
                fprintf(stdout, "%s\n", pad);
-               free(pad);
+               pg_free(pad);
        }
 
        /* for each row, dump the information */
@@ -440,7 +440,7 @@ sql_exec(PGconn *conn, const char *todo, bool quiet)
 
        /* cleanup */
        PQclear(res);
-       free(length);
+       pg_free(length);
 
        return 0;
 }
@@ -562,7 +562,7 @@ sql_exec_searchtables(PGconn *conn, struct options *opts)
                                        opts->extended ? addfields : "",
                                        qualifiers);
 
-       free(qualifiers);
+       pg_free(qualifiers);
 
        sql_exec(conn, todo, opts->quiet);
 }
index 8fba896561bccb065864f34f02baab0ad4beb785..553fcdcb55a64e42c9c4963713027fd93e03028f 100644 (file)
@@ -983,12 +983,12 @@ find_matching_ts_config(const char *lc_type)
        {
                if (pg_strcasecmp(tsearch_config_languages[i].langname, langname) == 0)
                {
-                       free(langname);
+                       pg_free(langname);
                        return tsearch_config_languages[i].tsconfname;
                }
        }
 
-       free(langname);
+       pg_free(langname);
        return NULL;
 }
 
@@ -1052,7 +1052,7 @@ write_version_file(const char *extrapath)
        if (fprintf(version_file, "%s\n", PG_MAJORVERSION) < 0 ||
                fclose(version_file))
                pg_fatal("could not write file \"%s\": %m", path);
-       free(path);
+       pfree(path);
 }
 
 /*
@@ -1071,7 +1071,7 @@ set_null_conf(void)
                pg_fatal("could not open file \"%s\" for writing: %m", path);
        if (fclose(conf_file))
                pg_fatal("could not write file \"%s\": %m", path);
-       free(path);
+       pfree(path);
 }
 
 /*
@@ -3048,7 +3048,7 @@ create_xlog_or_symlink(void)
                                         subdirloc);
        }
 
-       free(subdirloc);
+       pfree(subdirloc);
 }
 
 
@@ -3103,7 +3103,7 @@ initialize_data_directory(void)
                if (mkdir(path, pg_dir_create_mode) < 0)
                        pg_fatal("could not create directory \"%s\": %m", path);
 
-               free(path);
+               pfree(path);
        }
 
        check_ok();
@@ -3303,7 +3303,7 @@ main(int argc, char *argv[])
                                        *equals++ = '\0';       /* terminate variable name */
                                        add_stringlist_item(&extra_guc_names, buf);
                                        add_stringlist_item(&extra_guc_values, equals);
-                                       pfree(buf);
+                                       pg_free(buf);
                                }
                                break;
                        case 'D':
index 80dc3bbc8da9d35f85538846159a6947f1e044f7..c82852e6be0f857a305748818d5e047361de5147 100644 (file)
@@ -796,7 +796,7 @@ progress_update_filename(const char *filename)
        /* We needn't maintain this variable if not doing verbose reports. */
        if (showprogress && verbose)
        {
-               free(progress_filename);
+               pg_free(progress_filename);
                if (filename)
                        progress_filename = pg_strdup(filename);
                else
@@ -2857,7 +2857,7 @@ main(int argc, char **argv)
 
                if (symlink(xlog_dir, linkloc) != 0)
                        pg_fatal("could not create symbolic link \"%s\": %m", linkloc);
-               free(linkloc);
+               pfree(linkloc);
        }
 
        BaseBackup(compression_algorithm, compression_detail, compressloc,
index 0a9b11184f59563f508551ba9f2e436da856e2c8..20b354aed56b90ad55d7de18c70d6657e97f91ea 100644 (file)
@@ -758,7 +758,7 @@ modify_subscriber_sysid(const struct CreateSubscriberOptions *opt)
        cmd_str = psprintf("\"%s\" -D \"%s\" >> \"%s\"", pg_resetwal_path,
                                           subscriber_dir, out_file);
        if (opt->log_dir)
-               pg_free(out_file);
+               pfree(out_file);
 
        pg_log_debug("pg_resetwal command is: %s", cmd_str);
 
@@ -772,8 +772,8 @@ modify_subscriber_sysid(const struct CreateSubscriberOptions *opt)
                        pg_fatal("could not reset WAL on subscriber: %s", wait_result_to_str(rc));
        }
 
-       pg_free(cf);
-       pg_free(cmd_str);
+       pfree(cf);
+       pfree(cmd_str);
 }
 
 /*
@@ -2128,8 +2128,8 @@ set_replication_progress(PGconn *conn, const struct LogicalRepInfo *dbinfo, cons
 
        PQfreemem(subname);
        PQfreemem(dbname);
-       pg_free(originname);
-       pg_free(lsnstr);
+       pfree(originname);
+       pfree(lsnstr);
        destroyPQExpBuffer(str);
 }
 
@@ -2508,7 +2508,7 @@ main(int argc, char **argv)
                if (!internal_log_file_fp)
                        pg_fatal("could not open log file \"%s\": %m", internal_log_file);
 
-               pg_free(internal_log_file);
+               pfree(internal_log_file);
 
                pg_logging_set_logfile(internal_log_file_fp);
        }
index 694326964e32b299d0d40745e27ff58c29d32190..8fcd690f155abbf05ef7747a5d3da573dcd9ff3e 100644 (file)
@@ -203,15 +203,15 @@ GetConnection(void)
        {
                pg_log_error("%s", PQerrorMessage(tmpconn));
                PQfinish(tmpconn);
-               free(values);
-               free(keywords);
+               pg_free(values);
+               pg_free(keywords);
                PQconninfoFree(conn_opts);
                return NULL;
        }
 
        /* Connection ok! */
-       free(values);
-       free(keywords);
+       pg_free(values);
+       pg_free(keywords);
        PQconninfoFree(conn_opts);
 
        /*
index 021fd3ffa1ddd27f3639918933d382626de16282..1a3eb99c10d9887f8ac198958005ae15e70387a4 100644 (file)
@@ -214,7 +214,7 @@ load_backup_manifest(char *backup_directory)
        }
 
        /* All done. */
-       pfree(buffer);
+       pg_free(buffer);
        return result;
 }
 
index 767b8b9e499fc2e449229365759002b285433ba3..a0a58c4a1a83c451ff6ff8c915319a139ec0a78e 100644 (file)
@@ -1161,7 +1161,7 @@ process_directory_recursively(Oid tsoid,
 
                /* Avoid leaking memory. */
                if (checksum_payload != NULL)
-                       pfree(checksum_payload);
+                       pg_free(checksum_payload);
        }
 
        closedir(dir);
index 38e756be7ef8208903bd07961f70c81cd0b88102..986c6e99b9d4a6f3b8626716101ca9c7492a8e53 100644 (file)
@@ -372,9 +372,9 @@ reconstruct_from_incremental_file(char *input_filename,
                pg_free(s->filename);
                pg_free(s);
        }
-       pfree(sourcemap);
-       pfree(offsetmap);
-       pfree(source);
+       pg_free(sourcemap);
+       pg_free(offsetmap);
+       pg_free(source);
 }
 
 /*
@@ -518,7 +518,7 @@ make_rfile(char *filename, bool missing_ok)
        {
                if (missing_ok && errno == ENOENT)
                {
-                       pg_free(rf->filename);
+                       pfree(rf->filename);
                        pg_free(rf);
                        return NULL;
                }
index b5433a75d12b890598d4d8db8c5c63776779c958..7dc6e1ad8f9b940796bce9d51a466aac29e32a9b 100644 (file)
@@ -357,7 +357,7 @@ readfile(const char *path, int *numlines)
        if (len != statbuf.st_size)
        {
                /* oops, the file size changed between fstat and read */
-               free(buffer);
+               pg_free(buffer);
                return NULL;
        }
 
@@ -398,7 +398,7 @@ readfile(const char *path, int *numlines)
        }
        result[n] = NULL;
 
-       free(buffer);
+       pg_free(buffer);
 
        return result;
 }
@@ -2168,12 +2168,12 @@ adjust_data_dir(void)
                write_stderr(_("%s: could not determine the data directory using command \"%s\"\n"), progname, cmd);
                exit(1);
        }
-       free(my_exec_path);
+       pg_free(my_exec_path);
 
        /* strip trailing newline and carriage return */
        (void) pg_strip_crlf(filename);
 
-       free(pg_data);
+       pg_free(pg_data);
        pg_data = pg_strdup(filename);
        canonicalize_path(pg_data);
 }
@@ -2288,7 +2288,7 @@ main(int argc, char **argv)
                                         * but we do -D too for clearer postmaster 'ps' display
                                         */
                                        pgdata_opt = psprintf("-D \"%s\" ", pgdata_D);
-                                       free(pgdata_D);
+                                       pg_free(pgdata_D);
                                        break;
                                }
                        case 'e':
index 60c553ba25ada1b9a81412d34b17e5ce1da754d4..bd1043b2366a403ade3d019c9a985c5298bc52d1 100644 (file)
@@ -229,9 +229,9 @@ ReadDataFromArchiveGzip(ArchiveHandle *AH, CompressorState *cs)
        if (inflateEnd(zp) != Z_OK)
                pg_fatal("could not close compression library: %s", zp->msg);
 
-       free(buf);
-       free(out);
-       free(zp);
+       pg_free(buf);
+       pg_free(out);
+       pg_free(zp);
 }
 
 /* Public routines that support gzip compressed data I/O */
@@ -421,7 +421,7 @@ Gzip_open_write(const char *path, const char *mode, CompressFileHandle *CFH)
        ret = CFH->open_func(fname, -1, mode, CFH);
 
        save_errno = errno;
-       pg_free(fname);
+       pfree(fname);
        errno = save_errno;
 
        return ret;
index 0a7872116e76327e65dfe360daad1e6526826f7f..500d5e16a6d8929aaf96f058586de477e660d09a 100644 (file)
@@ -755,7 +755,7 @@ LZ4Stream_open_write(const char *path, const char *mode, CompressFileHandle *CFH
        ret = CFH->open_func(fname, -1, mode, CFH);
 
        save_errno = errno;
-       pg_free(fname);
+       pfree(fname);
        errno = save_errno;
 
        return ret;
index 743e2ce94b55b9f916c8c3d3ff41e69a492e293f..47bc6f1f3ddfcdff5f3f7238c9e9f10a86453124 100644 (file)
@@ -53,7 +53,7 @@ ReadDataFromArchiveNone(ArchiveHandle *AH, CompressorState *cs)
                ahwrite(buf, 1, cnt, AH);
        }
 
-       free(buf);
+       pg_free(buf);
 }
 
 
index f3ce8b1cfb10e2b2310d78dd0118514d40071964..b04076bf34f4076500b4337e9335aa741fa09082 100644 (file)
@@ -66,8 +66,8 @@ ConnectDatabase(const char *dbname, const char *connection_string,
                char       *err_msg = NULL;
                int                     i = 0;
 
-               free(keywords);
-               free(values);
+               pg_free(keywords);
+               pg_free(values);
                PQconninfoFree(conn_opts);
 
                /*
@@ -176,8 +176,8 @@ ConnectDatabase(const char *dbname, const char *connection_string,
                {
                        PQfinish(conn);
 
-                       free(keywords);
-                       free(values);
+                       pg_free(keywords);
+                       pg_free(values);
                        PQconninfoFree(conn_opts);
 
                        return NULL;
@@ -191,8 +191,8 @@ ConnectDatabase(const char *dbname, const char *connection_string,
        if (connstr)
                *connstr = constructConnStr(keywords, values);
 
-       free(keywords);
-       free(values);
+       pg_free(keywords);
+       pg_free(values);
        PQconninfoFree(conn_opts);
 
        /* Check version */
index dfb1f603a43e9ce4e7b6cae0b95978107133b0d0..2dc9855098f0ca72e2954a0ddc5d368f81376dd1 100644 (file)
@@ -343,8 +343,8 @@ buildACLCommands(const char *name, const char *subname, const char *nspname,
 
        free(aclitems);
        free(baseitems);
-       free(grantitems);
-       free(revokeitems);
+       pg_free(grantitems);
+       pg_free(revokeitems);
 
        return ok;
 }
index 7e2e9f958eafd8bd5a45afa6c55b1a0a0b504047..3e84b881ca3721d55ca357c3bf09dc3a8cad0e55 100644 (file)
@@ -485,7 +485,7 @@ WaitForTerminatingWorkers(ParallelState *pstate)
                ret = WaitForMultipleObjects(nrun, lpHandles, false, INFINITE);
                Assert(ret != WAIT_FAILED);
                hThread = (uintptr_t) lpHandles[ret - WAIT_OBJECT_0];
-               free(lpHandles);
+               pg_free(lpHandles);
 
                /* Find dead worker's slot, and clear the hThread field */
                for (j = 0; j < pstate->numWorkers; j++)
index 46f4c518347517161195ab962c2627255dc9c4d3..0557eb6d6eda3c6b861de387a34e8859429584e9 100644 (file)
@@ -1680,12 +1680,12 @@ archprintf(Archive *AH, const char *fmt, ...)
                        break;                          /* success */
 
                /* Release buffer and loop around to try again with larger len. */
-               free(p);
+               pg_free(p);
                len = cnt;
        }
 
        WriteData(AH, p, cnt);
-       free(p);
+       pg_free(p);
        return (int) cnt;
 }
 
@@ -1780,12 +1780,12 @@ ahprintf(ArchiveHandle *AH, const char *fmt, ...)
                        break;                          /* success */
 
                /* Release buffer and loop around to try again with larger len. */
-               free(p);
+               pg_free(p);
                len = cnt;
        }
 
        ahwrite(p, 1, cnt, AH);
-       free(p);
+       pg_free(p);
        return (int) cnt;
 }
 
@@ -2250,7 +2250,7 @@ _discoverArchiveFormat(ArchiveHandle *AH)
 
        pg_log_debug("attempting to ascertain archive format");
 
-       free(AH->lookahead);
+       pg_free(AH->lookahead);
 
        AH->readHeader = 0;
        AH->lookaheadSize = 512;
@@ -2843,7 +2843,7 @@ ReadToc(ArchiveHandle *AH)
                        }
                        else
                        {
-                               free(deps);
+                               pg_free(deps);
                                te->dependencies = NULL;
                                te->nDeps = 0;
                        }
@@ -2903,7 +2903,7 @@ processEncodingEntry(ArchiveHandle *AH, TocEntry *te)
                pg_fatal("invalid ENCODING item: %s",
                                 te->defn);
 
-       free(defn);
+       pg_free(defn);
 }
 
 static void
@@ -3599,7 +3599,7 @@ _becomeUser(ArchiveHandle *AH, const char *user)
         * NOTE: currUser keeps track of what the imaginary session user in our
         * script is
         */
-       free(AH->currUser);
+       pg_free(AH->currUser);
        AH->currUser = pg_strdup(user);
 }
 
@@ -3664,7 +3664,7 @@ _selectOutputSchema(ArchiveHandle *AH, const char *schemaName)
        else
                ahprintf(AH, "%s;\n\n", qry->data);
 
-       free(AH->currSchema);
+       pg_free(AH->currSchema);
        AH->currSchema = pg_strdup(schemaName);
 
        destroyPQExpBuffer(qry);
@@ -3725,7 +3725,7 @@ _selectTablespace(ArchiveHandle *AH, const char *tablespace)
        else
                ahprintf(AH, "%s;\n\n", qry->data);
 
-       free(AH->currTablespace);
+       pg_free(AH->currTablespace);
        AH->currTablespace = pg_strdup(want);
 
        destroyPQExpBuffer(qry);
@@ -3776,7 +3776,7 @@ _selectTableAccessMethod(ArchiveHandle *AH, const char *tableam)
 
        destroyPQExpBuffer(cmd);
 
-       free(AH->currTableAm);
+       pg_free(AH->currTableAm);
        AH->currTableAm = pg_strdup(want);
 }
 
@@ -3897,7 +3897,7 @@ _getObjectDescription(PQExpBuffer buf, const TocEntry *te)
 
                appendPQExpBufferStr(buf, first);
 
-               free(first);
+               pg_free(first);
                return;
        }
        /* these object types don't have separate owners */
@@ -4110,7 +4110,7 @@ _printTocEntry(ArchiveHandle *AH, TocEntry *te, const char *pfx)
                        char       *cmdEnd = psprintf(" OWNER TO %s", fmtId(te->owner));
 
                        IssueCommandPerBlob(AH, te, "ALTER LARGE OBJECT ", cmdEnd);
-                       pg_free(cmdEnd);
+                       pfree(cmdEnd);
                }
                else
                {
@@ -5090,7 +5090,7 @@ identify_locking_dependencies(ArchiveHandle *AH, TocEntry *te)
 
        if (nlockids == 0)
        {
-               free(lockids);
+               pg_free(lockids);
                return;
        }
 
index b2062d796f5b7ef4e9345024ec7984100b72343c..ab1954c3312abb9355ddc765778d6b627c62867d 100644 (file)
@@ -645,7 +645,7 @@ _skipData(ArchiveHandle *AH)
                {
                        if (blkLen > buflen)
                        {
-                               free(buf);
+                               pg_free(buf);
                                buflen = Max(blkLen, 4 * 1024);
                                buf = (char *) pg_malloc(buflen);
                        }
@@ -661,7 +661,7 @@ _skipData(ArchiveHandle *AH)
                blkLen = ReadInt(AH);
        }
 
-       free(buf);
+       pg_free(buf);
 }
 
 /*
index 5c349279beb56e5f6f352aceb598eb819b34f247..ec0ddf1d7183a1a5d71e0b1b6e966e132cef6518 100644 (file)
@@ -143,7 +143,7 @@ ConnectDatabaseAhx(Archive *AHX,
         */
        if (PQconnectionUsedPassword(AH->connection))
        {
-               free(AH->savedPassword);
+               pg_free(AH->savedPassword);
                AH->savedPassword = pg_strdup(PQpass(AH->connection));
        }
 
@@ -425,7 +425,7 @@ ExecuteSqlCommandBuf(Archive *AHX, const char *buf, size_t bufLen)
                        memcpy(str, buf, bufLen);
                        str[bufLen] = '\0';
                        ExecuteSqlCommand(AH, str, "could not execute query");
-                       free(str);
+                       pg_free(str);
                }
        }
 
index 562868cd2addf8db8b6e888b9df55ab63965b64f..c0b50223cec7fe20f98b2a5ba19c3a99fb1bd439 100644 (file)
@@ -365,7 +365,7 @@ _PrintFileData(ArchiveHandle *AH, char *filename)
                ahwrite(buf, 1, cnt, AH);
        }
 
-       free(buf);
+       pg_free(buf);
        if (!EndCompressFileHandle(CFH))
                pg_fatal("could not close data file \"%s\": %m", filename);
 }
index 55b1e4e85d0d8aeb1e1c9bc02923ddc9b0553c91..9e9eaf0ba2af5da51c5daf48c9f1a0ccadc9e58f 100644 (file)
@@ -975,12 +975,12 @@ tarPrintf(TAR_MEMBER *th, const char *fmt, ...)
                        break;                          /* success */
 
                /* Release buffer and loop around to try again with larger len. */
-               free(p);
+               pg_free(p);
                len = cnt;
        }
 
        cnt = tarWrite(p, cnt, th);
-       free(p);
+       pg_free(p);
        return (int) cnt;
 }
 
@@ -1076,7 +1076,7 @@ _tarPositionTo(ArchiveHandle *AH, const char *filename)
                         * We're just scanning the archive for the next file, so return
                         * null
                         */
-                       free(th);
+                       pg_free(th);
                        return NULL;
                }
        }
index c56437d60570c5e3c0a9190efe54fa8c69afb8c3..25f66b56d40ff7ea4908b50c1ef72f54538736e2 100644 (file)
@@ -2787,7 +2787,7 @@ dumpTableData_insert(Archive *fout, const void *dcontext)
        destroyPQExpBuffer(q);
        if (insertStmt != NULL)
                destroyPQExpBuffer(insertStmt);
-       free(attgenerated);
+       pg_free(attgenerated);
 
        /* Revert back the setting */
        if (tbinfo->relkind == RELKIND_FOREIGN_TABLE)
@@ -3766,7 +3766,7 @@ dumpDatabase(Archive *fout)
 
        PQclear(res);
 
-       free(qdatname);
+       pg_free(qdatname);
        destroyPQExpBuffer(dbQry);
        destroyPQExpBuffer(delQry);
        destroyPQExpBuffer(creaQry);
@@ -4501,11 +4501,11 @@ dumpPolicy(Archive *fout, const PolicyInfo *polinfo)
                                        tbinfo->dobj.namespace->dobj.name, tbinfo->rolname,
                                        polinfo->dobj.catId, 0, polinfo->dobj.dumpId);
 
-       free(tag);
+       pfree(tag);
        destroyPQExpBuffer(query);
        destroyPQExpBuffer(delqry);
        destroyPQExpBuffer(polprefix);
-       free(qtabname);
+       pg_free(qtabname);
 }
 
 /*
@@ -4793,7 +4793,7 @@ dumpPublication(Archive *fout, const PublicationInfo *pubinfo)
 
        destroyPQExpBuffer(delq);
        destroyPQExpBuffer(query);
-       free(qpubname);
+       pg_free(qpubname);
 }
 
 /*
@@ -5046,7 +5046,7 @@ dumpPublicationNamespace(Archive *fout, const PublicationSchemaInfo *pubsinfo)
 
        /* These objects can't currently have comments or seclabels */
 
-       free(tag);
+       pfree(tag);
        destroyPQExpBuffer(query);
 }
 
@@ -5108,7 +5108,7 @@ dumpPublicationTable(Archive *fout, const PublicationRelInfo *pubrinfo)
 
        /* These objects can't currently have comments or seclabels */
 
-       free(tag);
+       pfree(tag);
        destroyPQExpBuffer(query);
 }
 
@@ -5551,7 +5551,7 @@ dumpSubscriptionTable(Archive *fout, const SubRelInfo *subrinfo)
 
        /* These objects can't currently have comments or seclabels */
 
-       free(tag);
+       pfree(tag);
        destroyPQExpBuffer(query);
 }
 
@@ -5717,7 +5717,7 @@ dumpSubscription(Archive *fout, const SubscriptionInfo *subinfo)
 
        destroyPQExpBuffer(delq);
        destroyPQExpBuffer(query);
-       free(qsubname);
+       pg_free(qsubname);
 }
 
 /*
@@ -10219,7 +10219,7 @@ determineNotNullFlags(Archive *fout, PGresult *res, int r,
                                        tbinfo->notnull_constrs[j] =
                                                pstrdup(PQgetvalue(res, r, i_notnull_name));
                                }
-                               free(default_name);
+                               pfree(default_name);
                        }
                }
        }
@@ -12079,7 +12079,7 @@ dumpNamespace(Archive *fout, const NamespaceInfo *nspinfo)
                                qnspname, NULL, NULL,
                                NULL, nspinfo->rolname, &nspinfo->dacl);
 
-       free(qnspname);
+       pg_free(qnspname);
 
        destroyPQExpBuffer(q);
        destroyPQExpBuffer(delq);
@@ -12202,7 +12202,7 @@ dumpExtension(Archive *fout, const ExtensionInfo *extinfo)
                                        NULL, "",
                                        extinfo->dobj.catId, 0, extinfo->dobj.dumpId);
 
-       free(qextname);
+       pg_free(qextname);
 
        destroyPQExpBuffer(q);
        destroyPQExpBuffer(delq);
@@ -12375,8 +12375,8 @@ dumpEnumType(Archive *fout, const TypeInfo *tyinfo)
        destroyPQExpBuffer(q);
        destroyPQExpBuffer(delq);
        destroyPQExpBuffer(query);
-       free(qtypname);
-       free(qualtypname);
+       pg_free(qtypname);
+       pg_free(qualtypname);
 }
 
 /*
@@ -12528,8 +12528,8 @@ dumpRangeType(Archive *fout, const TypeInfo *tyinfo)
        destroyPQExpBuffer(q);
        destroyPQExpBuffer(delq);
        destroyPQExpBuffer(query);
-       free(qtypname);
-       free(qualtypname);
+       pg_free(qtypname);
+       pg_free(qualtypname);
 }
 
 /*
@@ -12597,8 +12597,8 @@ dumpUndefinedType(Archive *fout, const TypeInfo *tyinfo)
 
        destroyPQExpBuffer(q);
        destroyPQExpBuffer(delq);
-       free(qtypname);
-       free(qualtypname);
+       pg_free(qtypname);
+       pg_free(qualtypname);
 }
 
 /*
@@ -12846,8 +12846,8 @@ dumpBaseType(Archive *fout, const TypeInfo *tyinfo)
        destroyPQExpBuffer(q);
        destroyPQExpBuffer(delq);
        destroyPQExpBuffer(query);
-       free(qtypname);
-       free(qualtypname);
+       pg_free(qtypname);
+       pg_free(qualtypname);
 }
 
 /*
@@ -12961,7 +12961,7 @@ dumpDomain(Archive *fout, const TypeInfo *tyinfo)
                                else
                                        appendPQExpBuffer(q, " CONSTRAINT %s %s",
                                                                          fmtId(notnull->dobj.name), notnull->condef);
-                               free(default_name);
+                               pfree(default_name);
                        }
                }
        }
@@ -13070,8 +13070,8 @@ dumpDomain(Archive *fout, const TypeInfo *tyinfo)
        destroyPQExpBuffer(q);
        destroyPQExpBuffer(delq);
        destroyPQExpBuffer(query);
-       free(qtypname);
-       free(qualtypname);
+       pg_free(qtypname);
+       pg_free(qualtypname);
 }
 
 /*
@@ -13272,8 +13272,8 @@ dumpCompositeType(Archive *fout, const TypeInfo *tyinfo)
        destroyPQExpBuffer(dropped);
        destroyPQExpBuffer(delq);
        destroyPQExpBuffer(query);
-       free(qtypname);
-       free(qualtypname);
+       pg_free(qtypname);
+       pg_free(qualtypname);
 }
 
 /*
@@ -13539,7 +13539,7 @@ dumpProcLang(Archive *fout, const ProcLangInfo *plang)
                                qlanname, NULL, NULL,
                                NULL, plang->lanowner, &plang->dacl);
 
-       free(qlanname);
+       pg_free(qlanname);
 
        destroyPQExpBuffer(defqry);
        destroyPQExpBuffer(delqry);
@@ -13850,7 +13850,7 @@ dumpFunc(Archive *fout, const FuncInfo *finfo)
                                                          getFormattedTypeName(fout, typeids[i], zeroAsNone));
                }
 
-               free(typeids);
+               pg_free(typeids);
        }
 
        if (prokind[0] == PROKIND_WINDOW)
@@ -14018,7 +14018,7 @@ dumpFunc(Archive *fout, const FuncInfo *finfo)
        free(funcsig);
        free(funcfullsig);
        free(funcsig_tag);
-       free(qual_funcsig);
+       pfree(qual_funcsig);
        free(configitems);
 }
 
@@ -14604,7 +14604,7 @@ dumpAccessMethod(Archive *fout, const AccessMethodInfo *aminfo)
                                                   aminfo->amtype, qamname);
                        destroyPQExpBuffer(q);
                        destroyPQExpBuffer(delq);
-                       free(qamname);
+                       pg_free(qamname);
                        return;
        }
 
@@ -14633,7 +14633,7 @@ dumpAccessMethod(Archive *fout, const AccessMethodInfo *aminfo)
 
        destroyPQExpBuffer(q);
        destroyPQExpBuffer(delq);
-       free(qamname);
+       pg_free(qamname);
 }
 
 /*
@@ -14905,9 +14905,9 @@ dumpOpclass(Archive *fout, const OpclassInfo *opcinfo)
                                        opcinfo->dobj.namespace->dobj.name, opcinfo->rolname,
                                        opcinfo->dobj.catId, 0, opcinfo->dobj.dumpId);
 
-       free(opcintype);
-       free(opcfamily);
-       free(amname);
+       pg_free(opcintype);
+       pg_free(opcfamily);
+       pg_free(amname);
        destroyPQExpBuffer(query);
        destroyPQExpBuffer(q);
        destroyPQExpBuffer(delq);
@@ -15127,7 +15127,7 @@ dumpOpfamily(Archive *fout, const OpfamilyInfo *opfinfo)
                                        opfinfo->dobj.namespace->dobj.name, opfinfo->rolname,
                                        opfinfo->dobj.catId, 0, opfinfo->dobj.dumpId);
 
-       free(amname);
+       pg_free(amname);
        PQclear(res_ops);
        PQclear(res_procs);
        destroyPQExpBuffer(query);
@@ -15390,7 +15390,7 @@ dumpCollation(Archive *fout, const CollInfo *collinfo)
        destroyPQExpBuffer(query);
        destroyPQExpBuffer(q);
        destroyPQExpBuffer(delq);
-       free(qcollname);
+       pg_free(qcollname);
 }
 
 /*
@@ -15484,7 +15484,7 @@ dumpConversion(Archive *fout, const ConvInfo *convinfo)
        destroyPQExpBuffer(query);
        destroyPQExpBuffer(q);
        destroyPQExpBuffer(delq);
-       free(qconvname);
+       pg_free(qconvname);
 }
 
 /*
@@ -15942,7 +15942,7 @@ dumpTSParser(Archive *fout, const TSParserInfo *prsinfo)
 
        destroyPQExpBuffer(q);
        destroyPQExpBuffer(delq);
-       free(qprsname);
+       pg_free(qprsname);
 }
 
 /*
@@ -16022,7 +16022,7 @@ dumpTSDictionary(Archive *fout, const TSDictInfo *dictinfo)
        destroyPQExpBuffer(q);
        destroyPQExpBuffer(delq);
        destroyPQExpBuffer(query);
-       free(qdictname);
+       pg_free(qdictname);
 }
 
 /*
@@ -16080,7 +16080,7 @@ dumpTSTemplate(Archive *fout, const TSTemplateInfo *tmplinfo)
 
        destroyPQExpBuffer(q);
        destroyPQExpBuffer(delq);
-       free(qtmplname);
+       pg_free(qtmplname);
 }
 
 /*
@@ -16200,7 +16200,7 @@ dumpTSConfig(Archive *fout, const TSConfigInfo *cfginfo)
        destroyPQExpBuffer(q);
        destroyPQExpBuffer(delq);
        destroyPQExpBuffer(query);
-       free(qcfgname);
+       pg_free(qcfgname);
 }
 
 /*
@@ -16270,7 +16270,7 @@ dumpForeignDataWrapper(Archive *fout, const FdwInfo *fdwinfo)
                                "FOREIGN DATA WRAPPER", qfdwname, NULL, NULL,
                                NULL, fdwinfo->rolname, &fdwinfo->dacl);
 
-       free(qfdwname);
+       pg_free(qfdwname);
 
        destroyPQExpBuffer(q);
        destroyPQExpBuffer(delq);
@@ -16366,7 +16366,7 @@ dumpForeignServer(Archive *fout, const ForeignServerInfo *srvinfo)
 
        PQclear(res);
 
-       free(qsrvname);
+       pg_free(qsrvname);
 
        destroyPQExpBuffer(q);
        destroyPQExpBuffer(delq);
@@ -17158,13 +17158,13 @@ dumpTable(Archive *fout, const TableInfo *tbinfo)
                                        "TABLE", namecopy, attnamecopy,
                                        tbinfo->dobj.namespace->dobj.name,
                                        NULL, tbinfo->rolname, &coldacl);
-                       free(attnamecopy);
+                       pg_free(attnamecopy);
                }
                PQclear(res);
                destroyPQExpBuffer(query);
        }
 
-       free(namecopy);
+       pg_free(namecopy);
 }
 
 /*
@@ -18154,9 +18154,9 @@ dumpTableSchema(Archive *fout, const TableInfo *tbinfo)
                                                                  tbinfo->attfdwoptions[j]);
                }                                               /* end loop over columns */
 
-               free(partkeydef);
-               free(ftoptions);
-               free(srvname);
+               pg_free(partkeydef);
+               pg_free(ftoptions);
+               pg_free(srvname);
        }
 
        /*
@@ -18300,8 +18300,8 @@ dumpTableSchema(Archive *fout, const TableInfo *tbinfo)
        destroyPQExpBuffer(q);
        destroyPQExpBuffer(delq);
        destroyPQExpBuffer(extra);
-       free(qrelname);
-       free(qualrelname);
+       pg_free(qrelname);
+       pg_free(qualrelname);
 }
 
 /*
@@ -18435,10 +18435,10 @@ dumpAttrDef(Archive *fout, const AttrDefInfo *adinfo)
                                                                  .createStmt = q->data,
                                                                  .dropStmt = delq->data));
 
-       free(tag);
+       pfree(tag);
        destroyPQExpBuffer(q);
        destroyPQExpBuffer(delq);
-       free(qualrelname);
+       pg_free(qualrelname);
 }
 
 /*
@@ -18620,8 +18620,8 @@ dumpIndex(Archive *fout, const IndxInfo *indxinfo)
 
        destroyPQExpBuffer(q);
        destroyPQExpBuffer(delq);
-       free(qindxname);
-       free(qqindxname);
+       pg_free(qindxname);
+       pg_free(qqindxname);
 }
 
 /*
@@ -18741,7 +18741,7 @@ dumpStatisticsExt(Archive *fout, const StatsExtInfo *statsextinfo)
        destroyPQExpBuffer(q);
        destroyPQExpBuffer(delq);
        destroyPQExpBuffer(query);
-       free(qstatsextname);
+       pg_free(qstatsextname);
 }
 
 /*
@@ -19322,7 +19322,7 @@ dumpConstraint(Archive *fout, const ConstraintInfo *coninfo)
                                                        tyinfo->rolname,
                                                        coninfo->dobj.catId, 0, coninfo->dobj.dumpId);
                                destroyPQExpBuffer(conprefix);
-                               free(qtypname);
+                               pg_free(qtypname);
                        }
                }
        }
@@ -19337,7 +19337,7 @@ dumpConstraint(Archive *fout, const ConstraintInfo *coninfo)
                coninfo->dobj.dump & DUMP_COMPONENT_COMMENT)
                dumpTableConstraintComment(fout, coninfo);
 
-       free(tag);
+       pfree(tag);
        destroyPQExpBuffer(q);
        destroyPQExpBuffer(delq);
 }
@@ -19369,7 +19369,7 @@ dumpTableConstraintComment(Archive *fout, const ConstraintInfo *coninfo)
                                        coninfo->separate ? coninfo->dobj.dumpId : tbinfo->dobj.dumpId);
 
        destroyPQExpBuffer(conprefix);
-       free(qtabname);
+       pg_free(qtabname);
 }
 
 static inline SeqType
@@ -19712,7 +19712,7 @@ dumpSequence(Archive *fout, const TableInfo *tbinfo)
                pg_free(seq);
        destroyPQExpBuffer(query);
        destroyPQExpBuffer(delqry);
-       free(qseqname);
+       pg_free(qseqname);
 }
 
 /*
@@ -19922,12 +19922,12 @@ dumpTrigger(Archive *fout, const TriggerInfo *tginfo)
                                        tbinfo->dobj.namespace->dobj.name, tbinfo->rolname,
                                        tginfo->dobj.catId, 0, tginfo->dobj.dumpId);
 
-       free(tag);
+       pfree(tag);
        destroyPQExpBuffer(query);
        destroyPQExpBuffer(delqry);
        destroyPQExpBuffer(trigprefix);
        destroyPQExpBuffer(trigidentity);
-       free(qtabname);
+       pg_free(qtabname);
 }
 
 /*
@@ -20017,7 +20017,7 @@ dumpEventTrigger(Archive *fout, const EventTriggerInfo *evtinfo)
 
        destroyPQExpBuffer(query);
        destroyPQExpBuffer(delqry);
-       free(qevtname);
+       pg_free(qevtname);
 }
 
 /*
@@ -20173,12 +20173,12 @@ dumpRule(Archive *fout, const RuleInfo *rinfo)
                                        tbinfo->rolname,
                                        rinfo->dobj.catId, 0, rinfo->dobj.dumpId);
 
-       free(tag);
+       pfree(tag);
        destroyPQExpBuffer(query);
        destroyPQExpBuffer(cmd);
        destroyPQExpBuffer(delcmd);
        destroyPQExpBuffer(ruleprefix);
-       free(qtabname);
+       pg_free(qtabname);
 }
 
 /*
@@ -20821,7 +20821,7 @@ BuildArchiveDependencies(Archive *fout)
                        te->nDeps = nDeps;
                }
                else
-                       free(dependencies);
+                       pg_free(dependencies);
        }
 }
 
index 03e5c1c1116c0d2bbca786417ec241b76979ad14..5b3ea0f2a187c0f58005d7d4ad59cd6b18f16090 100644 (file)
@@ -578,7 +578,7 @@ sortDumpableObjects(DumpableObject **objs, int numObjs,
 
        memcpy(objs, ordering, numObjs * sizeof(DumpableObject *));
 
-       free(ordering);
+       pg_free(ordering);
 }
 
 /*
@@ -734,8 +734,8 @@ TopoSort(DumpableObject **objs,
 
        /* Done */
        binaryheap_free(pendingHeap);
-       free(beforeConstraints);
-       free(idMap);
+       pg_free(beforeConstraints);
+       pg_free(idMap);
 
        return (i == 0);
 }
@@ -830,9 +830,9 @@ findDependencyLoops(DumpableObject **objs, int nObjs, int totObjs)
        if (!fixedloop)
                pg_fatal("could not identify dependency loop");
 
-       free(workspace);
-       free(searchFailed);
-       free(processed);
+       pg_free(workspace);
+       pg_free(searchFailed);
+       pg_free(processed);
 }
 
 /*
index b9653f0aefef7561d749b2c2771bd4765316a87a..d6883839c4e08224911166a15c9ebaa047bc8cdf 100644 (file)
@@ -1336,7 +1336,7 @@ dumpRoleGUCPrivs(PGconn *conn)
 
                fprintf(OPF, "%s", buf->data);
 
-               free(fparname);
+               pg_free(fparname);
                destroyPQExpBuffer(buf);
        }
 
@@ -1475,7 +1475,7 @@ dumpTablespaces(PGconn *conn)
 
                fprintf(OPF, "%s", buf->data);
 
-               free(fspcname);
+               pg_free(fspcname);
                destroyPQExpBuffer(buf);
        }
 
index f8f31382835c80f9dc0b416ca80f35e7e72a3ea3..7e34e15a9d9b34fbf62bd264723298b3e64eae96 100644 (file)
@@ -1034,7 +1034,7 @@ create_script_for_old_cluster_deletion(char **deletion_script_file_name)
 
                /* Unlink file in case it is left over from a previous run. */
                unlink(*deletion_script_file_name);
-               pg_free(*deletion_script_file_name);
+               pfree(*deletion_script_file_name);
                *deletion_script_file_name = NULL;
                return;
        }
@@ -1058,7 +1058,7 @@ create_script_for_old_cluster_deletion(char **deletion_script_file_name)
 
                        /* Unlink file in case it is left over from a previous run. */
                        unlink(*deletion_script_file_name);
-                       pg_free(*deletion_script_file_name);
+                       pfree(*deletion_script_file_name);
                        *deletion_script_file_name = NULL;
                        return;
                }
@@ -1086,7 +1086,7 @@ create_script_for_old_cluster_deletion(char **deletion_script_file_name)
                fprintf(script, RMDIR_CMD " %c%s%s%c\n", PATH_QUOTE,
                                fix_path_separator(old_cluster.tablespaces[tblnum]),
                                old_tblspc_suffix, PATH_QUOTE);
-       pfree(old_tblspc_suffix);
+       pg_free(old_tblspc_suffix);
 
        fclose(script);
 
@@ -1639,7 +1639,7 @@ check_for_incompatible_polymorphics(ClusterInfo *cluster)
                check_ok();
 
        termPQExpBuffer(&old_polymorphics);
-       pg_free(query);
+       pfree(query);
 }
 
 /*
index bc7e8006d825ead6fd5ff6e6c70b3c7259a7e0e8..ebc78a634d2d7fdce943a995fbc3d6c9e93fdd0d 100644 (file)
@@ -154,7 +154,7 @@ get_loadable_libraries(void)
        }
 
        pg_free(state.ress);
-       pg_free(query);
+       pfree(query);
 
        os_info.num_libraries = totaltups;
 }
index bd4fe635c6f4ba44695739a7e4408a1c1994d3b3..f338fa22ca0a8a8729f2661839c1956ce40d3491 100644 (file)
@@ -509,7 +509,7 @@ parse_manifest_file(char *manifest_path)
        }
 
        /* Done with the buffer. */
-       pfree(buffer);
+       pg_free(buffer);
 
        return result;
 }
@@ -1109,7 +1109,7 @@ verify_backup_checksums(verifier_context *context)
                }
        }
 
-       pfree(buffer);
+       pg_free(buffer);
 
        progress_report(true);
 }
index 0b2bb9340b5dc7de96b68fc02d31e6884fa86636..8ab35a8c83ecb8e49016c95272c37c4eed25eb71 100644 (file)
@@ -3162,7 +3162,7 @@ sendCommand(CState *st, Command *command)
 
                pg_log_debug("client %d sending %s", st->id, sql);
                r = PQsendQuery(st->con, sql);
-               free(sql);
+               pg_free(sql);
        }
        else if (querymode == QUERY_EXTENDED)
        {
@@ -3355,7 +3355,7 @@ readCommandResponse(CState *st, MetaCommand meta, char *varprefix)
                                                }
 
                                                if (*varprefix != '\0')
-                                                       pg_free(varname);
+                                                       pfree(varname);
                                        }
                                }
                                /* otherwise the result is simply thrown away by PQclear below */
index 01b8f11aaddfd6b44ee6d0e02cdc4698d3af9ffb..5dde9bdd0e8476efb2b60b1bb0621db3d3e6c332 100644 (file)
@@ -2601,7 +2601,7 @@ exec_command_password(PsqlScanState scan_state, bool active_branch)
                        PQclear(res);
                }
 
-               free(user);
+               pg_free(user);
                free(pw1);
                free(pw2);
                termPQExpBuffer(&buf);
@@ -2913,7 +2913,7 @@ exec_command_set(PsqlScanState scan_state, bool active_branch)
                        if (!SetVariable(pset.vars, opt0, newval))
                                success = false;
 
-                       free(newval);
+                       pg_free(newval);
                }
                free(opt0);
        }
@@ -3881,7 +3881,7 @@ prompt_for_password(const char *username, bool *canceled)
 
                prompt_text = psprintf(_("Password for user %s: "), username);
                result = simple_prompt_extended(prompt_text, false, &prompt_ctx);
-               free(prompt_text);
+               pfree(prompt_text);
        }
 
        if (canceled)
@@ -4706,7 +4706,7 @@ editFile(const char *fname, int lineno)
                pg_log_error("could not start editor \"%s\"", editorName);
        else if (result == 127)
                pg_log_error("could not start /bin/sh");
-       free(sys);
+       pfree(sys);
 
        return result == 0;
 }
@@ -5893,7 +5893,7 @@ do_shell(const char *command)
                sys = psprintf("\"%s\"", shellName);
 #endif
                result = system(sys);
-               free(sys);
+               pfree(sys);
        }
        else
                result = system(command);
index 10078f24532a82a9561d9853d2b073c94b60b192..7db8025d24c5fc80055a2057e923d349cf6320af 100644 (file)
@@ -840,12 +840,12 @@ StoreQueryTuple(const PGresult *result)
 
                        if (!SetVariable(pset.vars, varname, value))
                        {
-                               free(varname);
+                               pfree(varname);
                                success = false;
                                break;
                        }
 
-                       free(varname);
+                       pfree(varname);
                }
        }
 
index af3935b0078715a47e341630f652131798ae428a..a1a440a646900119e86624a0a95a8afef9e43322 100644 (file)
@@ -1926,8 +1926,8 @@ describeOneTableDetails(const char *schemaname,
 
                printQuery(res, &myopt, pset.queryFout, false, pset.logfile);
 
-               free(footers[0]);
-               free(footers[1]);
+               pg_free(footers[0]);
+               pg_free(footers[1]);
 
                retval = true;
                goto error_return;              /* not an error, just return early */
@@ -2000,8 +2000,8 @@ describeOneTableDetails(const char *schemaname,
 
                printQuery(res, &popt, pset.queryFout, false, pset.logfile);
 
-               free(footers[0]);
-               free(footers[1]);
+               pg_free(footers[0]);
+               pg_free(footers[1]);
 
                retval = true;
                goto error_return;              /* not an error, just return early */
@@ -3855,7 +3855,7 @@ error_return:
        termPQExpBuffer(&title);
        termPQExpBuffer(&tmpbuf);
 
-       free(view_def);
+       pg_free(view_def);
 
        PQclear(res);
 
@@ -4063,8 +4063,8 @@ describeRoles(const char *pattern, bool verbose, bool showSystem)
        printTableCleanup(&cont);
 
        for (i = 0; i < nrows; i++)
-               free(attr[i]);
-       free(attr);
+               pg_free(attr[i]);
+       pg_free(attr);
 
        PQclear(res);
        return true;
index 5e0d8f3aae1fd1f21840ffbf5ffc46eda36943a4..bfd3fea177e4dfa5d894d582db5ebf80261cddcf 100644 (file)
@@ -725,7 +725,7 @@ helpSQL(const char *topic, unsigned short int pager)
                                                        _(QL_HELP[i].help),
                                                        buffer.data,
                                                        url);
-                                       free(url);
+                                       pfree(url);
                                        termPQExpBuffer(&buffer);
 
                                        /* If we have an exact match, exit.  Fixes \h SELECT */
index 9f9c1cbbf502d09f7c4c0325c11b88031744b858..6d37359fc961234a2433928509f956ac2d794d39 100644 (file)
@@ -157,7 +157,7 @@ pg_send_history(PQExpBuffer history_buf)
                else
                {
                        /* Save each previous line for ignoredups processing */
-                       free(prev_hist);
+                       pg_free(prev_hist);
                        prev_hist = pg_strdup(s);
                        /* And send it to readline */
                        add_history(s);
index c961300fe9845787c3fa3f03a80f5dd501c48553..25153d296bc13bb9fcbf4ca05ed8d1a14910ad83 100644 (file)
@@ -210,12 +210,12 @@ do_lo_import(const char *filename_arg, const char *comment_arg)
 
                if (!(res = PSQLexec(cmdbuf)))
                {
-                       free(cmdbuf);
+                       pg_free(cmdbuf);
                        return fail_lo_xact("\\lo_import", own_transaction);
                }
 
                PQclear(res);
-               free(cmdbuf);
+               pg_free(cmdbuf);
        }
 
        if (!finish_lo_xact("\\lo_import", own_transaction))
index e9abda07161d9ebd3dc2450d75ca56352e74d7da..1f409a573b7ebe2a9c9a1d18ebd8a869c2b968db 100644 (file)
@@ -210,7 +210,7 @@ MainLoop(FILE *source)
                if (pset.lineno == 1 && !pset.cur_cmd_interactive &&
                        strncmp(line, "PGDMP", 5) == 0)
                {
-                       free(line);
+                       pg_free(line);
                        puts(_("The input is a PostgreSQL custom-format dump.\n"
                                   "Use the pg_restore command-line client to restore this dump to a database.\n"));
                        fflush(stdout);
@@ -221,7 +221,7 @@ MainLoop(FILE *source)
                /* no further processing of empty lines, unless within a literal */
                if (line[0] == '\0' && !psql_scan_in_quote(scan_state))
                {
-                       free(line);
+                       pg_free(line);
                        continue;
                }
 
@@ -304,7 +304,7 @@ MainLoop(FILE *source)
                                                         "       \\? for help with psql commands\n"
                                                         "       \\g or terminate with semicolon to execute query\n"
                                                         "       \\q to quit\n"));
-                                       free(line);
+                                       pg_free(line);
                                        fflush(stdout);
                                        continue;
                                }
@@ -334,7 +334,7 @@ MainLoop(FILE *source)
                                else
                                {
                                        /* exit app */
-                                       free(line);
+                                       pg_free(line);
                                        fflush(stdout);
                                        successResult = EXIT_SUCCESS;
                                        break;
@@ -536,7 +536,7 @@ MainLoop(FILE *source)
                                                appendPQExpBufferChar(query_buf, '\n');
                                        /* rescan query_buf as new input */
                                        psql_scan_finish(scan_state);
-                                       free(line);
+                                       pg_free(line);
                                        line = pg_strdup(query_buf->data);
                                        resetPQExpBuffer(query_buf);
                                        /* reset parsing state since we are rescanning whole line */
@@ -574,7 +574,7 @@ MainLoop(FILE *source)
                }
 
                psql_scan_finish(scan_state);
-               free(line);
+               pg_free(line);
 
                if (slashCmdStatus == PSQL_CMD_TERMINATE)
                {
index 9725d53dfe7844187e8708f78cf81b8787f42394..4906f320e77f0527abd63e84f9952f39a56f3b9c 100644 (file)
@@ -333,7 +333,7 @@ get_prompt(promptStatus_t status, ConditionalStack cstack)
                                                /* strip trailing newline and carriage return */
                                                (void) pg_strip_crlf(buf);
 
-                                               free(file);
+                                               pfree(file);
                                                p += cmdend + 1;
                                                break;
                                        }
@@ -348,7 +348,7 @@ get_prompt(promptStatus_t status, ConditionalStack cstack)
                                                val = GetVariable(pset.vars, name);
                                                if (val)
                                                        strlcpy(buf, val, sizeof(buf));
-                                               free(name);
+                                               pfree(name);
                                                p += nameend + 1;
                                                break;
                                        }
index 7665f0a3124e5dd0ca19b51f8e9e288441edb461..eafc7c97347fc622595854adb8c01fb2a52ca874 100644 (file)
@@ -276,8 +276,8 @@ main(int argc, char *argv[])
 
                new_pass = false;
                pset.db = PQconnectdbParams(keywords, values, true);
-               free(keywords);
-               free(values);
+               pg_free(keywords);
+               pg_free(values);
 
                if (PQstatus(pset.db) == CONNECTION_BAD &&
                        PQconnectionNeedsPassword(pset.db) &&
@@ -300,7 +300,7 @@ main(int argc, char *argv[])
                        PQfinish(pset.db);
 
                        password = simple_prompt(password_prompt, false);
-                       free(password_prompt);
+                       pfree(password_prompt);
                        new_pass = true;
                }
        } while (new_pass);
@@ -620,7 +620,7 @@ parse_psql_options(int argc, char *argv[], struct adhoc_opts *options)
                                        if (!result)
                                                pg_fatal("could not set printing parameter \"%s\"", value);
 
-                                       free(value);
+                                       pg_free(value);
                                        break;
                                }
                        case 'q':
@@ -664,7 +664,7 @@ parse_psql_options(int argc, char *argv[], struct adhoc_opts *options)
                                                        exit(EXIT_FAILURE); /* error already printed */
                                        }
 
-                                       free(value);
+                                       pg_free(value);
                                        break;
                                }
                        case 'V':
@@ -834,8 +834,8 @@ process_psqlrc_file(char *filename)
        else if (access(filename, R_OK) == 0)
                (void) process_file(filename, false);
 
-       free(psqlrc_minor);
-       free(psqlrc_major);
+       pfree(psqlrc_minor);
+       pfree(psqlrc_major);
 }
 
 
index ad7562271186a998f18743b41eceb8396d706ee9..3e90253ab71109250604b0a0e38c02daf0462ab9 100644 (file)
@@ -70,7 +70,7 @@ strtokx(const char *s,
 
        if (s)
        {
-               free(storage);
+               pg_free(storage);
 
                /*
                 * We may need extra space to insert delimiter nulls for adjacent
@@ -93,7 +93,7 @@ strtokx(const char *s,
        if (*start == '\0')
        {
                /* technically we don't need to free here, but we're nice */
-               free(storage);
+               pg_free(storage);
                storage = NULL;
                string = NULL;
                return NULL;
@@ -334,7 +334,7 @@ quote_if_needed(const char *source, const char *entails_quote,
 
        if (!need_quotes)
        {
-               free(ret);
+               pg_free(ret);
                ret = NULL;
        }
 
index 46b9add0604887fcdef2e5b14318ce42f4d25fd2..072b98bea08702f3f25f42fd20e4c24d3feff200 100644 (file)
@@ -2139,12 +2139,12 @@ psql_completion(const char *text, int start, int end)
        }
 
        /* free storage */
-       free(previous_words);
-       free(words_buffer);
-       free(text_copy);
-       free(completion_ref_object);
+       pg_free(previous_words);
+       pg_free(words_buffer);
+       pfree(text_copy);
+       pg_free(completion_ref_object);
        completion_ref_object = NULL;
-       free(completion_ref_schema);
+       pg_free(completion_ref_schema);
        completion_ref_schema = NULL;
 
        /* Return our Grand List O' Matches */
@@ -6251,12 +6251,12 @@ _complete_from_query(const char *simple_query,
 
                /* Clean up */
                termPQExpBuffer(&query_buffer);
-               free(schemaname);
-               free(objectname);
-               free(e_object_like);
-               free(e_schemaname);
-               free(e_ref_object);
-               free(e_ref_schema);
+               pg_free(schemaname);
+               pg_free(objectname);
+               pg_free(e_object_like);
+               pg_free(e_schemaname);
+               pg_free(e_ref_object);
+               pg_free(e_ref_schema);
        }
 
        /* Return the next result, if any, but not if the query failed */
@@ -6551,8 +6551,8 @@ complete_from_variables(const char *text, const char *prefix, const char *suffix
        COMPLETE_WITH_LIST_CS((const char *const *) varnames);
 
        for (i = 0; i < nvars; i++)
-               free(varnames[i]);
-       free(varnames);
+               pg_free(varnames[i]);
+       pg_free(varnames);
 
        return matches;
 }
@@ -6808,7 +6808,7 @@ make_like_pattern(const char *word)
        *bptr = '\0';
 
        result = escape_string(buffer);
-       free(buffer);
+       pg_free(buffer);
        return result;
 }
 
@@ -7194,7 +7194,7 @@ get_previous_words(int point, char **buffer, int *nwords)
 
        /* Release parsing input workspace, if we made one above */
        if (buf != rl_line_buffer)
-               free(buf);
+               pg_free(buf);
 
        *nwords = words_found;
        return previous_words;
@@ -7321,7 +7321,7 @@ dequote_file_name(char *fname, int quote_char)
                strcpy(workspace + 1, fname);
                unquoted_fname = strtokx(workspace, "", NULL, "'", *completion_charp,
                                                                 false, true, pset.encoding);
-               free(workspace);
+               pg_free(workspace);
        }
        else
                unquoted_fname = strtokx(fname, "", NULL, "'", *completion_charp,
index 67a7665c5d7fafbed858cd3adc4c6f6ae02e7402..855a5754c98c18f4f6513ba98c8af81af3eb4170 100644 (file)
@@ -490,7 +490,7 @@ vacuum_all_databases(ConnParams *cparams,
                {
                        for (int i = 0; i < numdbs; i++)
                                free_retrieved_objects(found_objs[i]);
-                       pg_free(found_objs);
+                       pfree(found_objs);
                }
        }
        else
index 648f2c1d6f1afa1f0bab0aa877aba48897b77cc2..8561e292be44e8f1e43a70c5d1f139d3cac556fd 100644 (file)
@@ -360,5 +360,5 @@ pg_log_generic_v(enum pg_log_level level, enum pg_log_part part,
                fflush(log_logfile);
        }
 
-       free(buf);
+       pg_free(buf);
 }
index bfbaf094d7ecc64fb82e3ed263dc1a8d5226211f..2edd95022edb7706208a002bf8d8dd29b85d331a 100644 (file)
@@ -1180,21 +1180,21 @@ cleanup:
        /* clean up */
        for (i = 0; i < col_count; i++)
        {
-               free(col_lineptrs[i]);
-               free(format_buf[i]);
-       }
-       free(width_header);
-       free(width_average);
-       free(max_width);
-       free(width_wrap);
-       free(max_nl_lines);
-       free(curr_nl_line);
-       free(col_lineptrs);
-       free(max_bytes);
-       free(format_buf);
-       free(header_done);
-       free(bytes_output);
-       free(wrap);
+               pg_free(col_lineptrs[i]);
+               pg_free(format_buf[i]);
+       }
+       pg_free(width_header);
+       pg_free(width_average);
+       pg_free(max_width);
+       pg_free(width_wrap);
+       pg_free(max_nl_lines);
+       pg_free(curr_nl_line);
+       pg_free(col_lineptrs);
+       pg_free(max_bytes);
+       pg_free(format_buf);
+       pg_free(header_done);
+       pg_free(bytes_output);
+       pg_free(wrap);
 
        if (is_local_pager)
                ClosePager(fout);
@@ -1807,10 +1807,10 @@ print_aligned_vertical(const printTableContent *cont,
                fputc('\n', fout);
        }
 
-       free(hlineptr->ptr);
-       free(dlineptr->ptr);
-       free(hlineptr);
-       free(dlineptr);
+       pg_free(hlineptr->ptr);
+       pg_free(dlineptr->ptr);
+       pg_free(hlineptr);
+       pg_free(dlineptr);
 
        if (is_local_pager)
                ClosePager(fout);
@@ -3619,7 +3619,7 @@ count_table_lines(const printTableContent *cont,
                }
        }
 
-       free(header_height);
+       pg_free(header_height);
 
        return lines;
 }
index ad66e4d65c03a83ffc9be136591f96959d6649b5..ffac915d19322979b944ba6c633a2c4aea4aac08 100644 (file)
@@ -217,7 +217,7 @@ ecpg_start_test(const char *testname,
 
        appnameenv = psprintf("ecpg/%s", testname_dash.data);
        setenv("PGAPPNAME", appnameenv, 1);
-       free(appnameenv);
+       pfree(appnameenv);
 
        pid = spawn_process(cmd);
 
index 423b018afbe521bae64688f88f44bfe5da97fa54..56a758c76bd74399609b57af82fb2a0987c48520 100644 (file)
@@ -89,7 +89,7 @@ isolation_start_test(const char *testname,
 
        appnameenv = psprintf("isolation/%s", testname);
        setenv("PGAPPNAME", appnameenv, 1);
-       free(appnameenv);
+       pfree(appnameenv);
 
        pid = spawn_process(psql_cmd.data);
 
index 440c875b8ac6b74318c82a6f617c23fd13881994..e64dc020b18f0eb96e320ba009c61fa9e22cd491 100644 (file)
@@ -383,7 +383,7 @@ check_testspec(TestSpec *testspec)
                }
        }
 
-       free(allsteps);
+       pg_free(allsteps);
 }
 
 /*
@@ -437,9 +437,9 @@ run_all_permutations(TestSpec *testspec)
 
        run_all_permutations_recurse(testspec, piles, 0, stepptrs);
 
-       free(steps);
-       free(stepptrs);
-       free(piles);
+       pg_free(steps);
+       pg_free(stepptrs);
+       pg_free(piles);
 }
 
 static void
@@ -742,7 +742,7 @@ run_permutation(TestSpec *testspec, int nsteps, PermutationStep **steps)
                PQclear(res);
        }
 
-       free(waiting);
+       pg_free(waiting);
 }
 
 /*
index ee3e2ec757033597ea01f0a29e82e5e9cb73ead7..1660a68955e936e64236bbc9b05fe77b91b33e2c 100644 (file)
@@ -281,8 +281,8 @@ copy_connection(PGconn *conn)
                pg_fatal("Connection to database failed: %s",
                                 PQerrorMessage(copyConn));
 
-       pfree(keywords);
-       pfree(vals);
+       pg_free(keywords);
+       pg_free(vals);
        PQconninfoFree(opts);
 
        return copyConn;
@@ -1438,8 +1438,8 @@ test_protocol_version(PGconn *conn)
 
        PQfinish(conn);
 
-       pfree(keywords);
-       pfree(vals);
+       pg_free(keywords);
+       pg_free(vals);
        PQconninfoFree(opts);
 }
 
index b53821dd10cb6e91a01bda0d4c97a3923bb11853..21d00f792d24e801b6c2960df137a51365626180 100644 (file)
@@ -811,7 +811,7 @@ initialize_environment(void)
                new_pgoptions = psprintf("%s %s",
                                                                 old_pgoptions, my_pgoptions);
                setenv("PGOPTIONS", new_pgoptions, 1);
-               free(new_pgoptions);
+               pfree(new_pgoptions);
        }
 
        if (temp_instance)
@@ -997,7 +997,7 @@ current_windows_user(const char **acct, const char **dom)
                         GetLastError());
        }
 
-       free(tokenuser);
+       pg_free(tokenuser);
 
        *acct = accountname;
        *dom = domainname;
@@ -1682,7 +1682,7 @@ wait_for_tests(PID_TYPE * pids, int *statuses, instr_time *stoptimes,
        }
 
 #ifdef WIN32
-       free(active_pids);
+       pg_free(active_pids);
 #endif
 }
 
index 701f3dd5d9ca570e99b5d31bce7a0fccac8f1e7c..169646e351d98254cd7bc0edb8a4ea013c212296 100644 (file)
@@ -82,7 +82,7 @@ psql_start_test(const char *testname,
 
        appnameenv = psprintf("pg_regress/%s", testname);
        setenv("PGAPPNAME", appnameenv, 1);
-       free(appnameenv);
+       pfree(appnameenv);
 
        pid = spawn_process(psql_cmd.data);