Remove redundant null pointer checks before free()
authorPeter Eisentraut <peter@eisentraut.org>
Thu, 16 Jun 2022 19:50:56 +0000 (21:50 +0200)
committerPeter Eisentraut <peter@eisentraut.org>
Sun, 3 Jul 2022 09:47:15 +0000 (11:47 +0200)
Per applicable standards, free() with a null pointer is a no-op.
Systems that don't observe that are ancient and no longer relevant.
Some PostgreSQL code already required this behavior, so this change
does not introduce any new requirements, just makes the code more
consistent.

Discussion: https://www.postgresql.org/message-id/flat/dac5d2d0-98f5-94d9-8e69-46da2413593d%40enterprisedb.com

38 files changed:
contrib/pg_stat_statements/pg_stat_statements.c
contrib/uuid-ossp/uuid-ossp.c
src/backend/bootstrap/bootstrap.c
src/backend/libpq/auth.c
src/backend/postmaster/postmaster.c
src/backend/regex/regc_pg_locale.c
src/backend/tcop/postgres.c
src/backend/utils/adt/pg_locale.c
src/backend/utils/error/elog.c
src/backend/utils/init/miscinit.c
src/backend/utils/misc/guc.c
src/bin/pg_basebackup/pg_basebackup.c
src/bin/pg_basebackup/streamutil.c
src/bin/pg_dump/dumputils.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_tar.c
src/bin/pg_dump/pg_dump.c
src/bin/pg_dump/pg_dumpall.c
src/bin/pgbench/pgbench.c
src/bin/psql/command.c
src/bin/psql/copy.c
src/bin/psql/describe.c
src/bin/psql/input.c
src/bin/psql/tab-complete.c
src/common/fe_memutils.c
src/fe_utils/connect_utils.c
src/fe_utils/string_utils.c
src/interfaces/ecpg/pgtypeslib/numeric.c
src/interfaces/ecpg/preproc/descriptor.c
src/interfaces/libpq/fe-auth-scram.c
src/interfaces/libpq/fe-auth.c
src/interfaces/libpq/fe-connect.c
src/interfaces/libpq/fe-exec.c
src/interfaces/libpq/fe-print.c
src/interfaces/libpq/fe-secure-common.c
src/port/getaddrinfo.c

index 768cedd91a75f9393ecede9a1d8640ec183cc6b2..4acfddcdb870430d016cb60d99c1705f8eaae1fa 100644 (file)
@@ -809,8 +809,7 @@ error:
                        (errcode_for_file_access(),
                         errmsg("could not write file \"%s\": %m",
                                        PGSS_DUMP_FILE ".tmp")));
-       if (qbuffer)
-               free(qbuffer);
+       free(qbuffer);
        if (file)
                FreeFile(file);
        unlink(PGSS_DUMP_FILE ".tmp");
@@ -1657,8 +1656,7 @@ pg_stat_statements_internal(FunctionCallInfo fcinfo,
                        pgss->extent != extent ||
                        pgss->gc_count != gc_count)
                {
-                       if (qbuffer)
-                               free(qbuffer);
+                       free(qbuffer);
                        qbuffer = qtext_load_file(&qbuffer_size);
                }
        }
@@ -1842,8 +1840,7 @@ pg_stat_statements_internal(FunctionCallInfo fcinfo,
 
        LWLockRelease(pgss->lock);
 
-       if (qbuffer)
-               free(qbuffer);
+       free(qbuffer);
 }
 
 /* Number of output arguments (columns) for pg_stat_statements_info */
@@ -2446,8 +2443,7 @@ gc_fail:
        /* clean up resources */
        if (qfile)
                FreeFile(qfile);
-       if (qbuffer)
-               free(qbuffer);
+       free(qbuffer);
 
        /*
         * Since the contents of the external file are now uncertain, mark all
index 7c0fb812fd759ecc63d66ef2beb27ea6e5c7d8eb..b868812358df56a987fa5a4900162d4ff5281b84 100644 (file)
@@ -292,8 +292,7 @@ uuid_generate_internal(int v, unsigned char *ns, const char *ptr, int len)
                                                if (ptr && len <= 36)
                                                        strcpy(strbuf + (36 - len), ptr);
                                        }
-                                       if (str)
-                                               free(str);
+                                       free(str);
                                }
 
                                if (status != uuid_s_ok)
@@ -366,8 +365,7 @@ uuid_generate_internal(int v, unsigned char *ns, const char *ptr, int len)
                                if (status == uuid_s_ok)
                                        strlcpy(strbuf, str, 37);
 
-                               if (str)
-                                       free(str);
+                               free(str);
 
                                if (status != uuid_s_ok)
                                        ereport(ERROR,
index 9a610d41ad7d5038a79dc3adb3d9c7927cf0c335..088556ab54cc5d44d684557fc546b500e670d4d6 100644 (file)
@@ -288,8 +288,7 @@ BootstrapModeMain(int argc, char *argv[], bool check_only)
 
                                        SetConfigOption(name, value, PGC_POSTMASTER, PGC_S_ARGV);
                                        free(name);
-                                       if (value)
-                                               free(value);
+                                       free(value);
                                        break;
                                }
                        default:
index efc53f31353608431e3e73c86bf66059d89cab64..2d9ab7edceb421e5d2e408678cceb51b5bf8e620 100644 (file)
@@ -2020,10 +2020,7 @@ pam_passwd_conv_proc(int num_msg, const struct pam_message **msg,
 fail:
        /* free up whatever we allocated */
        for (i = 0; i < num_msg; i++)
-       {
-               if (reply[i].resp != NULL)
-                       free(reply[i].resp);
-       }
+               free(reply[i].resp);
        free(reply);
 
        return PAM_CONV_ERR;
index dde4bc25b1360bdfdeb945c59bb72f64d288dc5d..d7257e4056b0f3ea6b5443164e07f9b14520db0a 100644 (file)
@@ -854,8 +854,7 @@ PostmasterMain(int argc, char *argv[])
 
                                        SetConfigOption(name, value, PGC_POSTMASTER, PGC_S_ARGV);
                                        free(name);
-                                       if (value)
-                                               free(value);
+                                       free(value);
                                        break;
                                }
 
index e1f9df091803259b9e15ed5389d5049dd6b937f7..02d462a659778016f3c4479d425ba0a84feb6e26 100644 (file)
@@ -930,10 +930,8 @@ pg_ctype_get_cache(pg_wc_probefunc probefunc, int cclasscode)
         * Failure, clean up
         */
 out_of_memory:
-       if (pcc->cv.chrs)
-               free(pcc->cv.chrs);
-       if (pcc->cv.ranges)
-               free(pcc->cv.ranges);
+       free(pcc->cv.chrs);
+       free(pcc->cv.ranges);
        free(pcc);
 
        return NULL;
index 8b6b5bbaaab4a14f8833b2e42738b9eaf31f8db6..495cbf2006008c3d8f4df021a2286351281a0b1c 100644 (file)
@@ -3896,8 +3896,7 @@ process_postgres_switches(int argc, char *argv[], GucContext ctx,
                                        }
                                        SetConfigOption(name, value, ctx, gucsource);
                                        free(name);
-                                       if (value)
-                                               free(value);
+                                       free(value);
                                        break;
                                }
 
index a0490a752244411ca1676231ae4a2c35884a941d..ea42e70e43bb9f82b19c23147bc3b1292e817763 100644 (file)
@@ -374,26 +374,16 @@ assign_locale_messages(const char *newval, void *extra)
 static void
 free_struct_lconv(struct lconv *s)
 {
-       if (s->decimal_point)
-               free(s->decimal_point);
-       if (s->thousands_sep)
-               free(s->thousands_sep);
-       if (s->grouping)
-               free(s->grouping);
-       if (s->int_curr_symbol)
-               free(s->int_curr_symbol);
-       if (s->currency_symbol)
-               free(s->currency_symbol);
-       if (s->mon_decimal_point)
-               free(s->mon_decimal_point);
-       if (s->mon_thousands_sep)
-               free(s->mon_thousands_sep);
-       if (s->mon_grouping)
-               free(s->mon_grouping);
-       if (s->positive_sign)
-               free(s->positive_sign);
-       if (s->negative_sign)
-               free(s->negative_sign);
+       free(s->decimal_point);
+       free(s->thousands_sep);
+       free(s->grouping);
+       free(s->int_curr_symbol);
+       free(s->currency_symbol);
+       free(s->mon_decimal_point);
+       free(s->mon_thousands_sep);
+       free(s->mon_grouping);
+       free(s->positive_sign);
+       free(s->negative_sign);
 }
 
 /*
index 55ee5423afbc9966486f604409588ea466742a76..59124bd9ccb86a32ac42ca8b9cb4a6f0f01ff13d 100644 (file)
@@ -1985,8 +1985,7 @@ set_syslog_parameters(const char *ident, int facility)
                        closelog();
                        openlog_done = false;
                }
-               if (syslog_ident)
-                       free(syslog_ident);
+               free(syslog_ident);
                syslog_ident = strdup(ident);
                /* if the strdup fails, we will cope in write_syslog() */
                syslog_facility = facility;
index b25bd0e583850add127589715dfa2f2cccb71674..eb43b2c5e576b5b58895f4db51b5ff28062fd5f4 100644 (file)
@@ -417,8 +417,7 @@ SetDataDir(const char *dir)
        /* If presented path is relative, convert to absolute */
        new = make_absolute_path(dir);
 
-       if (DataDir)
-               free(DataDir);
+       free(DataDir);
        DataDir = new;
 }
 
index f640468f113a601f9719b9ddd5e0948b4541c8fa..0328029d430b1171794c6144f3b8b1c826d8b66a 100644 (file)
@@ -5483,8 +5483,7 @@ build_guc_variables(void)
        for (i = 0; ConfigureNamesEnum[i].gen.name; i++)
                guc_vars[num_vars++] = &ConfigureNamesEnum[i].gen;
 
-       if (guc_variables)
-               free(guc_variables);
+       free(guc_variables);
        guc_variables = guc_vars;
        num_guc_variables = num_vars;
        size_guc_variables = size_vars;
@@ -6880,8 +6879,7 @@ ReportGUCOption(struct config_generic *record)
                 * set last_reported to NULL and thereby possibly make a duplicate
                 * report later.
                 */
-               if (record->last_reported)
-                       free(record->last_reported);
+               free(record->last_reported);
                record->last_reported = strdup(val);
        }
 
@@ -8356,8 +8354,7 @@ set_config_sourcefile(const char *name, char *sourcefile, int sourceline)
                return;
 
        sourcefile = guc_strdup(elevel, sourcefile);
-       if (record->sourcefile)
-               free(record->sourcefile);
+       free(record->sourcefile);
        record->sourcefile = sourcefile;
        record->sourceline = sourceline;
 }
@@ -8877,8 +8874,7 @@ AlterSystemSetConfigFile(AlterSystemStmt *altersysstmt)
 
                        if (record->vartype == PGC_STRING && newval.stringval != NULL)
                                free(newval.stringval);
-                       if (newextra)
-                               free(newextra);
+                       free(newextra);
 
                        /*
                         * We must also reject values containing newlines, because the
@@ -11225,12 +11221,9 @@ RestoreGUCState(void *gucstate)
                 * pointers.
                 */
                Assert(gconf->stack == NULL);
-               if (gconf->extra)
-                       free(gconf->extra);
-               if (gconf->last_reported)       /* probably can't happen */
-                       free(gconf->last_reported);
-               if (gconf->sourcefile)
-                       free(gconf->sourcefile);
+               free(gconf->extra);
+               free(gconf->last_reported);
+               free(gconf->sourcefile);
                switch (gconf->vartype)
                {
                        case PGC_BOOL:
@@ -11261,8 +11254,7 @@ RestoreGUCState(void *gucstate)
                                {
                                        struct config_string *conf = (struct config_string *) gconf;
 
-                                       if (*conf->variable)
-                                               free(*conf->variable);
+                                       free(*conf->variable);
                                        if (conf->reset_val && conf->reset_val != *conf->variable)
                                                free(conf->reset_val);
                                        if (conf->reset_extra && conf->reset_extra != gconf->extra)
index 4adb170d464ea12ef252de4cadc87f70917aa3bd..b66eac707a45fecd92231fb11ffd6796c0255102 100644 (file)
@@ -775,8 +775,7 @@ progress_update_filename(const char *filename)
        /* We needn't maintain this variable if not doing verbose reports. */
        if (showprogress && verbose)
        {
-               if (progress_filename)
-                       free(progress_filename);
+               free(progress_filename);
                if (filename)
                        progress_filename = pg_strdup(filename);
                else
index 299b9b76213a4ba778b86acc218014a1b31328d7..8e820c0c71cb81cb9c801742218c6d4b5cb711e1 100644 (file)
@@ -154,8 +154,7 @@ GetConnection(void)
                /* Get a new password if appropriate */
                if (need_password)
                {
-                       if (password)
-                               free(password);
+                       free(password);
                        password = simple_prompt("Password: ", false);
                        need_password = false;
                }
index 3e68dfc78f9d95c5a66feb32b08ef142574f5521..6e501a541383080cd9a8b414b587d6bddd6e6fc3 100644 (file)
@@ -98,18 +98,15 @@ buildACLCommands(const char *name, const char *subname, const char *nspname,
        /* Parse the acls array */
        if (!parsePGArray(acls, &aclitems, &naclitems))
        {
-               if (aclitems)
-                       free(aclitems);
+               free(aclitems);
                return false;
        }
 
        /* Parse the baseacls too */
        if (!parsePGArray(baseacls, &baseitems, &nbaseitems))
        {
-               if (aclitems)
-                       free(aclitems);
-               if (baseitems)
-                       free(baseitems);
+               free(aclitems);
+               free(baseitems);
                return false;
        }
 
@@ -298,14 +295,10 @@ buildACLCommands(const char *name, const char *subname, const char *nspname,
        destroyPQExpBuffer(firstsql);
        destroyPQExpBuffer(secondsql);
 
-       if (aclitems)
-               free(aclitems);
-       if (baseitems)
-               free(baseitems);
-       if (grantitems)
-               free(grantitems);
-       if (revokeitems)
-               free(revokeitems);
+       free(aclitems);
+       free(baseitems);
+       free(grantitems);
+       free(revokeitems);
 
        return ok;
 }
index 77fe51a3a5348f81ec185a5796bd60a7a76501d2..233198afc0c934eba2ee33b5a482573ec6e899a9 100644 (file)
@@ -640,8 +640,7 @@ RestoreArchive(Archive *AHX)
                 * If we treated users as pg_dump'able objects then we'd need to reset
                 * currUser here too.
                 */
-               if (AH->currSchema)
-                       free(AH->currSchema);
+               free(AH->currSchema);
                AH->currSchema = NULL;
        }
 
@@ -2067,8 +2066,7 @@ _discoverArchiveFormat(ArchiveHandle *AH)
 
        pg_log_debug("attempting to ascertain archive format");
 
-       if (AH->lookahead)
-               free(AH->lookahead);
+       free(AH->lookahead);
 
        AH->readHeader = 0;
        AH->lookaheadSize = 512;
@@ -3178,21 +3176,17 @@ _reconnectToDB(ArchiveHandle *AH, const char *dbname)
         * NOTE: currUser keeps track of what the imaginary session user in our
         * script is.  It's now effectively reset to the original userID.
         */
-       if (AH->currUser)
-               free(AH->currUser);
+       free(AH->currUser);
        AH->currUser = NULL;
 
        /* don't assume we still know the output schema, tablespace, etc either */
-       if (AH->currSchema)
-               free(AH->currSchema);
+       free(AH->currSchema);
        AH->currSchema = NULL;
 
-       if (AH->currTableAm)
-               free(AH->currTableAm);
+       free(AH->currTableAm);
        AH->currTableAm = NULL;
 
-       if (AH->currTablespace)
-               free(AH->currTablespace);
+       free(AH->currTablespace);
        AH->currTablespace = NULL;
 
        /* re-establish fixed state */
@@ -3219,8 +3213,7 @@ _becomeUser(ArchiveHandle *AH, const char *user)
         * NOTE: currUser keeps track of what the imaginary session user in our
         * script is
         */
-       if (AH->currUser)
-               free(AH->currUser);
+       free(AH->currUser);
        AH->currUser = pg_strdup(user);
 }
 
@@ -3285,8 +3278,7 @@ _selectOutputSchema(ArchiveHandle *AH, const char *schemaName)
        else
                ahprintf(AH, "%s;\n\n", qry->data);
 
-       if (AH->currSchema)
-               free(AH->currSchema);
+       free(AH->currSchema);
        AH->currSchema = pg_strdup(schemaName);
 
        destroyPQExpBuffer(qry);
@@ -3347,8 +3339,7 @@ _selectTablespace(ArchiveHandle *AH, const char *tablespace)
        else
                ahprintf(AH, "%s;\n\n", qry->data);
 
-       if (AH->currTablespace)
-               free(AH->currTablespace);
+       free(AH->currTablespace);
        AH->currTablespace = pg_strdup(want);
 
        destroyPQExpBuffer(qry);
@@ -3399,8 +3390,7 @@ _selectTableAccessMethod(ArchiveHandle *AH, const char *tableam)
 
        destroyPQExpBuffer(cmd);
 
-       if (AH->currTableAm)
-               free(AH->currTableAm);
+       free(AH->currTableAm);
        AH->currTableAm = pg_strdup(want);
 }
 
@@ -3659,8 +3649,7 @@ _printTocEntry(ArchiveHandle *AH, TocEntry *te, bool isData)
         */
        if (_tocEntryIsACL(te))
        {
-               if (AH->currUser)
-                       free(AH->currUser);
+               free(AH->currUser);
                AH->currUser = NULL;
        }
 }
@@ -3991,17 +3980,13 @@ restore_toc_entries_prefork(ArchiveHandle *AH, TocEntry *pending_list)
        DisconnectDatabase(&AH->public);
 
        /* blow away any transient state from the old connection */
-       if (AH->currUser)
-               free(AH->currUser);
+       free(AH->currUser);
        AH->currUser = NULL;
-       if (AH->currSchema)
-               free(AH->currSchema);
+       free(AH->currSchema);
        AH->currSchema = NULL;
-       if (AH->currTablespace)
-               free(AH->currTablespace);
+       free(AH->currTablespace);
        AH->currTablespace = NULL;
-       if (AH->currTableAm)
-               free(AH->currTableAm);
+       free(AH->currTableAm);
        AH->currTableAm = NULL;
 }
 
@@ -4842,16 +4827,11 @@ DeCloneArchive(ArchiveHandle *AH)
                destroyPQExpBuffer(AH->sqlparse.curCmd);
 
        /* Clear any connection-local state */
-       if (AH->currUser)
-               free(AH->currUser);
-       if (AH->currSchema)
-               free(AH->currSchema);
-       if (AH->currTablespace)
-               free(AH->currTablespace);
-       if (AH->currTableAm)
-               free(AH->currTableAm);
-       if (AH->savedPassword)
-               free(AH->savedPassword);
+       free(AH->currUser);
+       free(AH->currSchema);
+       free(AH->currTablespace);
+       free(AH->currTableAm);
+       free(AH->savedPassword);
 
        free(AH);
 }
index 3443eef6b0e13e53a8042be2b889fdd8dfb4b1ac..1023fea01b209101ddd4514d2fa67e72036c7a36 100644 (file)
@@ -632,8 +632,7 @@ _skipData(ArchiveHandle *AH)
                {
                        if (blkLen > buflen)
                        {
-                               if (buf)
-                                       free(buf);
+                               free(buf);
                                buf = (char *) pg_malloc(blkLen);
                                buflen = blkLen;
                        }
@@ -649,8 +648,7 @@ _skipData(ArchiveHandle *AH)
                blkLen = ReadInt(AH);
        }
 
-       if (buf)
-               free(buf);
+       free(buf);
 }
 
 /*
index 89cdbf80e0ed4c8338193f47844d49063f652617..28baa68fd4e92c46e4a02795b43a6a401a3b246e 100644 (file)
@@ -204,8 +204,7 @@ ConnectDatabase(Archive *AHX,
         */
        if (PQconnectionUsedPassword(AH->connection))
        {
-               if (AH->savedPassword)
-                       free(AH->savedPassword);
+               free(AH->savedPassword);
                AH->savedPassword = pg_strdup(PQpass(AH->connection));
        }
 
index 39d71badb7b63e7fa7b7c9fbd939e0ef95c851a9..bfc49b66d2c9897c815812e174da853d4e7dd26c 100644 (file)
@@ -412,8 +412,7 @@ tarClose(ArchiveHandle *AH, TAR_MEMBER *th)
         * handle, and we don't use temp files.
         */
 
-       if (th->targetFile)
-               free(th->targetFile);
+       free(th->targetFile);
 
        th->nFH = NULL;
 }
index 7cc9c72e4922a6b3b554df7e08b4f795a668ccf7..c871cb727d1b981912f1df5d2695134515f83e59 100644 (file)
@@ -3339,8 +3339,7 @@ dumpSearchPath(Archive *AH)
        /* Also save it in AH->searchpath, in case we're doing plain text dump */
        AH->searchpath = pg_strdup(qry->data);
 
-       if (schemanames)
-               free(schemanames);
+       free(schemanames);
        PQclear(res);
        destroyPQExpBuffer(qry);
        destroyPQExpBuffer(path);
@@ -4614,8 +4613,7 @@ dumpSubscription(Archive *fout, const SubscriptionInfo *subinfo)
                                         subinfo->dobj.catId, 0, subinfo->dobj.dumpId);
 
        destroyPQExpBuffer(publications);
-       if (pubnames)
-               free(pubnames);
+       free(pubnames);
 
        destroyPQExpBuffer(delq);
        destroyPQExpBuffer(query);
@@ -11908,12 +11906,10 @@ dumpFunc(Archive *fout, const FuncInfo *finfo)
        destroyPQExpBuffer(delqry);
        destroyPQExpBuffer(asPart);
        free(funcsig);
-       if (funcfullsig)
-               free(funcfullsig);
+       free(funcfullsig);
        free(funcsig_tag);
        free(qual_funcsig);
-       if (configitems)
-               free(configitems);
+       free(configitems);
 }
 
 
@@ -13658,8 +13654,7 @@ dumpAgg(Archive *fout, const AggInfo *agginfo)
                                agginfo->aggfn.rolname, &agginfo->aggfn.dacl);
 
        free(aggsig);
-       if (aggfullsig)
-               free(aggfullsig);
+       free(aggfullsig);
        free(aggsig_tag);
 
        PQclear(res);
@@ -15713,12 +15708,9 @@ dumpTableSchema(Archive *fout, const TableInfo *tbinfo)
                                                                  tbinfo->attfdwoptions[j]);
                }                                               /* end loop over columns */
 
-               if (partkeydef)
-                       free(partkeydef);
-               if (ftoptions)
-                       free(ftoptions);
-               if (srvname)
-                       free(srvname);
+               free(partkeydef);
+               free(ftoptions);
+               free(srvname);
        }
 
        /*
@@ -16105,10 +16097,8 @@ dumpIndex(Archive *fout, const IndxInfo *indxinfo)
                                                                          .createStmt = q->data,
                                                                          .dropStmt = delq->data));
 
-               if (indstatcolsarray)
-                       free(indstatcolsarray);
-               if (indstatvalsarray)
-                       free(indstatvalsarray);
+               free(indstatcolsarray);
+               free(indstatvalsarray);
        }
 
        /* Dump Index Comments */
index ae41a652d799e6337cff1eb79e0c168a0d1e0804..da5cf85272c305cb12ea65c9cb7bf3b490d13b36 100644 (file)
@@ -1500,10 +1500,8 @@ connectDatabase(const char *dbname, const char *connection_string,
                char       *err_msg = NULL;
                int                     i = 0;
 
-               if (keywords)
-                       free(keywords);
-               if (values)
-                       free(values);
+               free(keywords);
+               free(values);
                if (conn_opts)
                        PQconninfoFree(conn_opts);
 
index 89b59a4ff6685d52a254665373fd817199c8672a..bcaea8f5ea2148f35853ca2df32c31b6b174f826 100644 (file)
@@ -1852,8 +1852,7 @@ putVariable(Variables *variables, const char *context, char *name,
        /* dup then free, in case value is pointing at this variable */
        val = pg_strdup(value);
 
-       if (var->svalue)
-               free(var->svalue);
+       free(var->svalue);
        var->svalue = val;
        var->value.type = PGBT_NO_VALUE;
 
@@ -1872,8 +1871,7 @@ putVariableValue(Variables *variables, const char *context, char *name,
        if (!var)
                return false;
 
-       if (var->svalue)
-               free(var->svalue);
+       free(var->svalue);
        var->svalue = NULL;
        var->value = *value;
 
index 653943b87a63234802cf2053d76c9b64c5033885..f3c5196c9018dbe2bb78ba3ac792aea3a097b0a1 100644 (file)
@@ -595,8 +595,7 @@ exec_command_cd(PsqlScanState scan_state, bool active_branch, const char *cmd)
                        success = false;
                }
 
-               if (opt)
-                       free(opt);
+               free(opt);
        }
        else
                ignore_slash_options(scan_state);
@@ -769,8 +768,7 @@ exec_command_d(PsqlScanState scan_state, bool active_branch, const char *cmd)
                                                        break;
                                        }
 
-                                       if (pattern2)
-                                               free(pattern2);
+                                       free(pattern2);
                                }
                                break;
                        case 'a':
@@ -881,8 +879,7 @@ exec_command_d(PsqlScanState scan_state, bool active_branch, const char *cmd)
                                                                                                                  OT_NORMAL, NULL, true);
                                        success = listDbRoleSettings(pattern, pattern2);
 
-                                       if (pattern2)
-                                               free(pattern2);
+                                       free(pattern2);
                                }
                                else
                                        status = PSQL_CMD_UNKNOWN;
@@ -963,8 +960,7 @@ exec_command_d(PsqlScanState scan_state, bool active_branch, const char *cmd)
                                status = PSQL_CMD_UNKNOWN;
                }
 
-               if (pattern)
-                       free(pattern);
+               free(pattern);
        }
        else
                ignore_slash_options(scan_state);
@@ -1092,10 +1088,8 @@ exec_command_edit(PsqlScanState scan_state, bool active_branch,
                                else
                                        status = PSQL_CMD_ERROR;
                        }
-                       if (fname)
-                               free(fname);
-                       if (ln)
-                               free(ln);
+                       free(fname);
+                       free(ln);
                }
        }
        else
@@ -1204,8 +1198,7 @@ exec_command_ef_ev(PsqlScanState scan_state, bool active_branch,
                                status = PSQL_CMD_NEWEDIT;
                }
 
-               if (obj_desc)
-                       free(obj_desc);
+               free(obj_desc);
        }
        else
                ignore_slash_whole_line(scan_state);
@@ -1920,8 +1913,7 @@ exec_command_list(PsqlScanState scan_state, bool active_branch, const char *cmd)
 
                success = listAllDbs(pattern, show_verbose);
 
-               if (pattern)
-                       free(pattern);
+               free(pattern);
        }
        else
                ignore_slash_options(scan_state);
@@ -2136,10 +2128,8 @@ exec_command_password(PsqlScanState scan_state, bool active_branch)
                }
 
                free(user);
-               if (pw1)
-                       free(pw1);
-               if (pw2)
-                       free(pw2);
+               free(pw1);
+               free(pw2);
                termPQExpBuffer(&buf);
        }
        else
@@ -2214,10 +2204,8 @@ exec_command_prompt(PsqlScanState scan_state, bool active_branch,
                                (result && !SetVariable(pset.vars, opt, result)))
                                success = false;
 
-                       if (result)
-                               free(result);
-                       if (prompt_text)
-                               free(prompt_text);
+                       free(result);
+                       free(prompt_text);
                        free(opt);
                }
        }
@@ -2522,8 +2510,7 @@ exec_command_sf_sv(PsqlScanState scan_state, bool active_branch,
                                ClosePager(output);
                }
 
-               if (obj_desc)
-                       free(obj_desc);
+               free(obj_desc);
                destroyPQExpBuffer(buf);
        }
        else
@@ -2802,8 +2789,7 @@ exec_command_z(PsqlScanState scan_state, bool active_branch)
                                                                                                         OT_NORMAL, NULL, true);
 
                success = permissionsList(pattern);
-               if (pattern)
-                       free(pattern);
+               free(pattern);
        }
        else
                ignore_slash_options(scan_state);
@@ -2853,8 +2839,7 @@ exec_command_slash_command_help(PsqlScanState scan_state, bool active_branch)
                else
                        slashUsage(pset.popt.topt.pager);
 
-               if (opt0)
-                       free(opt0);
+               free(opt0);
        }
        else
                ignore_slash_options(scan_state);
@@ -2994,8 +2979,7 @@ ignore_slash_filepipe(PsqlScanState scan_state)
        char       *arg = psql_scan_slash_option(scan_state,
                                                                                         OT_FILEPIPE, NULL, false);
 
-       if (arg)
-               free(arg);
+       free(arg);
 }
 
 /*
@@ -3011,8 +2995,7 @@ ignore_slash_whole_line(PsqlScanState scan_state)
        char       *arg = psql_scan_slash_option(scan_state,
                                                                                         OT_WHOLE_LINE, NULL, false);
 
-       if (arg)
-               free(arg);
+       free(arg);
 }
 
 /*
@@ -4779,16 +4762,11 @@ restorePsetInfo(printQueryOpt *popt, printQueryOpt *save)
        /* Free all the old data we're about to overwrite the pointers to. */
 
        /* topt.line_style points to const data that need not be duplicated */
-       if (popt->topt.fieldSep.separator)
-               free(popt->topt.fieldSep.separator);
-       if (popt->topt.recordSep.separator)
-               free(popt->topt.recordSep.separator);
-       if (popt->topt.tableAttr)
-               free(popt->topt.tableAttr);
-       if (popt->nullPrint)
-               free(popt->nullPrint);
-       if (popt->title)
-               free(popt->title);
+       free(popt->topt.fieldSep.separator);
+       free(popt->topt.recordSep.separator);
+       free(popt->topt.tableAttr);
+       free(popt->nullPrint);
+       free(popt->title);
 
        /*
         * footers and translate_columns are never set in psql's print settings,
index 424a429e1e2b490d8d473a07ff68b0881923a208..c181682a1326292e157d5aac7c7f7908fd8dea97 100644 (file)
@@ -389,8 +389,7 @@ do_copy(const char *args)
 
                                        pg_log_error("%s: %s", options->file,
                                                                 reason ? reason : "");
-                                       if (reason)
-                                               free(reason);
+                                       free(reason);
                                }
                                success = false;
                        }
index d1ae699171411d27b25a633ff5d8b41f496d747d..2df95bc16548b3381f60c022f6177b8974e5f595 100644 (file)
@@ -1786,8 +1786,7 @@ describeOneTableDetails(const char *schemaname,
 
                printQuery(res, &myopt, pset.queryFout, false, pset.logfile);
 
-               if (footers[0])
-                       free(footers[0]);
+               free(footers[0]);
 
                retval = true;
                goto error_return;              /* not an error, just return early */
@@ -3491,8 +3490,7 @@ error_return:
        termPQExpBuffer(&title);
        termPQExpBuffer(&tmpbuf);
 
-       if (view_def)
-               free(view_def);
+       free(view_def);
 
        if (res)
                PQclear(res);
index 416185d659f657de3fffee2e210e47d32194c938..6cc7ddda71e79fb69075a5c3616844acc110c292 100644 (file)
@@ -158,8 +158,7 @@ pg_send_history(PQExpBuffer history_buf)
                else
                {
                        /* Save each previous line for ignoredups processing */
-                       if (prev_hist)
-                               free(prev_hist);
+                       free(prev_hist);
                        prev_hist = pg_strdup(s);
                        /* And send it to readline */
                        add_history(s);
index bd44a1d55da6bbd9d7c7d778ad21e5b4ab26d6fd..463cac9fb07bb56c45a40f50f9fa1561a2eb2d30 100644 (file)
@@ -4754,11 +4754,9 @@ psql_completion(const char *text, int start, int end)
        free(previous_words);
        free(words_buffer);
        free(text_copy);
-       if (completion_ref_object)
-               free(completion_ref_object);
+       free(completion_ref_object);
        completion_ref_object = NULL;
-       if (completion_ref_schema)
-               free(completion_ref_schema);
+       free(completion_ref_schema);
        completion_ref_schema = NULL;
 
        /* Return our Grand List O' Matches */
@@ -5160,12 +5158,9 @@ _complete_from_query(const char *simple_query,
                /* Clean up */
                termPQExpBuffer(&query_buffer);
                free(e_object_like);
-               if (e_schemaname)
-                       free(e_schemaname);
-               if (e_ref_object)
-                       free(e_ref_object);
-               if (e_ref_schema)
-                       free(e_ref_schema);
+               free(e_schemaname);
+               free(e_ref_object);
+               free(e_ref_schema);
        }
 
        /* Return the next result, if any, but not if the query failed */
index 21fcce5430931610fab115b2e8cf101a9faddf75..b1e6c6557658f3769ef75e70a23186b5c59dd5eb 100644 (file)
@@ -104,8 +104,7 @@ pg_strdup(const char *in)
 void
 pg_free(void *ptr)
 {
-       if (ptr != NULL)
-               free(ptr);
+       free(ptr);
 }
 
 /*
index f2e583f9fac3a21db9a32868e589a9f19f9ee220..1cc97b72f71ee4e998a998ad6b01722d22fed5de 100644 (file)
@@ -99,8 +99,7 @@ connectDatabase(const ConnParams *cparams, const char *progname,
                        cparams->prompt_password != TRI_NO)
                {
                        PQfinish(conn);
-                       if (password)
-                               free(password);
+                       free(password);
                        password = simple_prompt("Password: ", false);
                        new_pass = true;
                }
index c3ea4fc186008ee1d57ac8bc271b911f63fbe4a3..f9ea08705afb5ff11fb23025437c97684a0797f5 100644 (file)
@@ -810,8 +810,7 @@ appendReloptionsArray(PQExpBuffer buffer, const char *reloptions,
 
        if (!parsePGArray(reloptions, &options, &noptions))
        {
-               if (options)
-                       free(options);
+               free(options);
                return false;
        }
 
@@ -854,8 +853,7 @@ appendReloptionsArray(PQExpBuffer buffer, const char *reloptions,
                        appendStringLiteral(buffer, value, encoding, std_strings);
        }
 
-       if (options)
-               free(options);
+       free(options);
 
        return true;
 }
index 34efc9045f376ff0c918b20f801baeedf10af619..a97b3300cb815b81dea751755e7310c3b678db06 100644 (file)
 #define init_var(v)                            memset(v,0,sizeof(numeric))
 
 #define digitbuf_alloc(size) ((NumericDigit *) pgtypes_alloc(size))
-#define digitbuf_free(buf)             \
-          do { \
-                                if ((buf) != NULL) \
-                                                 free(buf); \
-                 } while (0)
+#define digitbuf_free(buf) free(buf)
 
 
 /* ----------
index 35d94711d5674e0e571cfa643dcdea40f9edb820..f4b1878289cb11b681a3394425cfcd27e7268823 100644 (file)
@@ -113,8 +113,7 @@ drop_descriptor(char *name, char *connection)
                                        && strcmp(connection, i->connection) == 0))
                        {
                                *lastptr = i->next;
-                               if (i->connection)
-                                       free(i->connection);
+                               free(i->connection);
                                free(i->name);
                                free(i);
                                return;
index e616200704162e948f6b0e303456a7540fd99f40..5012806fa5eecbac9430034859c7f4d842f501dd 100644 (file)
@@ -174,30 +174,21 @@ scram_free(void *opaq)
 {
        fe_scram_state *state = (fe_scram_state *) opaq;
 
-       if (state->password)
-               free(state->password);
-       if (state->sasl_mechanism)
-               free(state->sasl_mechanism);
+       free(state->password);
+       free(state->sasl_mechanism);
 
        /* client messages */
-       if (state->client_nonce)
-               free(state->client_nonce);
-       if (state->client_first_message_bare)
-               free(state->client_first_message_bare);
-       if (state->client_final_message_without_proof)
-               free(state->client_final_message_without_proof);
+       free(state->client_nonce);
+       free(state->client_first_message_bare);
+       free(state->client_final_message_without_proof);
 
        /* first message from server */
-       if (state->server_first_message)
-               free(state->server_first_message);
-       if (state->salt)
-               free(state->salt);
-       if (state->nonce)
-               free(state->nonce);
+       free(state->server_first_message);
+       free(state->salt);
+       free(state->nonce);
 
        /* final message from server */
-       if (state->server_final_message)
-               free(state->server_final_message);
+       free(state->server_final_message);
 
        free(state);
 }
@@ -941,8 +932,7 @@ pg_fe_scram_build_secret(const char *password, const char **errstr)
        if (!pg_strong_random(saltbuf, SCRAM_DEFAULT_SALT_LEN))
        {
                *errstr = _("failed to generate random salt");
-               if (prep_password)
-                       free(prep_password);
+               free(prep_password);
                return NULL;
        }
 
@@ -950,8 +940,7 @@ pg_fe_scram_build_secret(const char *password, const char **errstr)
                                                                SCRAM_DEFAULT_ITERATIONS, password,
                                                                errstr);
 
-       if (prep_password)
-               free(prep_password);
+       free(prep_password);
 
        return result;
 }
index 0a072a36dc22bcc5c867a1135343fcf65cbd98e0..49a1c626f6439deafde53c21a8cfeb7debe962f9 100644 (file)
@@ -107,8 +107,7 @@ pg_GSS_continue(PGconn *conn, int payloadlen)
                                                                        NULL,
                                                                        NULL);
 
-       if (ginbuf.value)
-               free(ginbuf.value);
+       free(ginbuf.value);
 
        if (goutbuf.length != 0)
        {
@@ -270,8 +269,7 @@ pg_SSPI_continue(PGconn *conn, int payloadlen)
                                                                  NULL);
 
        /* we don't need the input anymore */
-       if (inputbuf)
-               free(inputbuf);
+       free(inputbuf);
 
        if (r != SEC_E_OK && r != SEC_I_CONTINUE_NEEDED)
        {
@@ -604,21 +602,18 @@ pg_SASL_init(PGconn *conn, int payloadlen)
                goto error;
 
        termPQExpBuffer(&mechanism_buf);
-       if (initialresponse)
-               free(initialresponse);
+       free(initialresponse);
 
        return STATUS_OK;
 
 error:
        termPQExpBuffer(&mechanism_buf);
-       if (initialresponse)
-               free(initialresponse);
+       free(initialresponse);
        return STATUS_ERROR;
 
 oom_error:
        termPQExpBuffer(&mechanism_buf);
-       if (initialresponse)
-               free(initialresponse);
+       free(initialresponse);
        appendPQExpBufferStr(&conn->errorMessage,
                                                 libpq_gettext("out of memory\n"));
        return STATUS_ERROR;
@@ -831,8 +826,7 @@ pg_password_sendauth(PGconn *conn, const char *password, AuthRequest areq)
                        return STATUS_ERROR;
        }
        ret = pqPacketSend(conn, 'p', pwd_to_send, strlen(pwd_to_send) + 1);
-       if (crypt_pwd)
-               free(crypt_pwd);
+       free(crypt_pwd);
        return ret;
 }
 
index 6e936bbff301d2d3173a06a955bd536034d53cae..057c9da0edeba7d8c9206a0e5d57c3fa6f121d7f 100644 (file)
@@ -540,8 +540,7 @@ pqFreeCommandQueue(PGcmdQueueEntry *queue)
                PGcmdQueueEntry *cur = queue;
 
                queue = cur->next;
-               if (cur->query)
-                       free(cur->query);
+               free(cur->query);
                free(cur);
        }
 }
@@ -593,8 +592,7 @@ pqDropServerData(PGconn *conn)
        conn->sversion = 0;
 
        /* Drop large-object lookup data */
-       if (conn->lobjfuncs)
-               free(conn->lobjfuncs);
+       free(conn->lobjfuncs);
        conn->lobjfuncs = NULL;
 
        /* Reset assorted other per-connection state */
@@ -602,8 +600,7 @@ pqDropServerData(PGconn *conn)
        conn->auth_req_received = false;
        conn->password_needed = false;
        conn->write_failed = false;
-       if (conn->write_err_msg)
-               free(conn->write_err_msg);
+       free(conn->write_err_msg);
        conn->write_err_msg = NULL;
        conn->be_pid = 0;
        conn->be_key = 0;
@@ -898,8 +895,7 @@ fillPGconn(PGconn *conn, PQconninfoOption *connOptions)
                        {
                                char      **connmember = (char **) ((char *) conn + option->connofs);
 
-                               if (*connmember)
-                                       free(*connmember);
+                               free(*connmember);
                                *connmember = strdup(tmp);
                                if (*connmember == NULL)
                                {
@@ -1113,8 +1109,7 @@ connectOptions2(PGconn *conn)
                }
                else
                {
-                       if (ch->host)
-                               free(ch->host);
+                       free(ch->host);
 
                        /*
                         * This bit selects the default host location.  If you change
@@ -1186,8 +1181,7 @@ connectOptions2(PGconn *conn)
         */
        if (conn->pguser == NULL || conn->pguser[0] == '\0')
        {
-               if (conn->pguser)
-                       free(conn->pguser);
+               free(conn->pguser);
                conn->pguser = pg_fe_getauthname(&conn->errorMessage);
                if (!conn->pguser)
                {
@@ -1201,8 +1195,7 @@ connectOptions2(PGconn *conn)
         */
        if (conn->dbName == NULL || conn->dbName[0] == '\0')
        {
-               if (conn->dbName)
-                       free(conn->dbName);
+               free(conn->dbName);
                conn->dbName = strdup(conn->pguser);
                if (!conn->dbName)
                        goto oom_error;
@@ -1221,8 +1214,7 @@ connectOptions2(PGconn *conn)
 
                        if (pqGetHomeDirectory(homedir, sizeof(homedir)))
                        {
-                               if (conn->pgpassfile)
-                                       free(conn->pgpassfile);
+                               free(conn->pgpassfile);
                                conn->pgpassfile = malloc(MAXPGPATH);
                                if (!conn->pgpassfile)
                                        goto oom_error;
@@ -1548,8 +1540,7 @@ PQsetdbLogin(const char *pghost, const char *pgport, const char *pgoptions,
                /* Insert dbName parameter value into struct */
                if (dbName && dbName[0] != '\0')
                {
-                       if (conn->dbName)
-                               free(conn->dbName);
+                       free(conn->dbName);
                        conn->dbName = strdup(dbName);
                        if (!conn->dbName)
                                goto oom_error;
@@ -1562,8 +1553,7 @@ PQsetdbLogin(const char *pghost, const char *pgport, const char *pgoptions,
         */
        if (pghost && pghost[0] != '\0')
        {
-               if (conn->pghost)
-                       free(conn->pghost);
+               free(conn->pghost);
                conn->pghost = strdup(pghost);
                if (!conn->pghost)
                        goto oom_error;
@@ -1571,8 +1561,7 @@ PQsetdbLogin(const char *pghost, const char *pgport, const char *pgoptions,
 
        if (pgport && pgport[0] != '\0')
        {
-               if (conn->pgport)
-                       free(conn->pgport);
+               free(conn->pgport);
                conn->pgport = strdup(pgport);
                if (!conn->pgport)
                        goto oom_error;
@@ -1580,8 +1569,7 @@ PQsetdbLogin(const char *pghost, const char *pgport, const char *pgoptions,
 
        if (pgoptions && pgoptions[0] != '\0')
        {
-               if (conn->pgoptions)
-                       free(conn->pgoptions);
+               free(conn->pgoptions);
                conn->pgoptions = strdup(pgoptions);
                if (!conn->pgoptions)
                        goto oom_error;
@@ -1589,8 +1577,7 @@ PQsetdbLogin(const char *pghost, const char *pgport, const char *pgoptions,
 
        if (login && login[0] != '\0')
        {
-               if (conn->pguser)
-                       free(conn->pguser);
+               free(conn->pguser);
                conn->pguser = strdup(login);
                if (!conn->pguser)
                        goto oom_error;
@@ -1598,8 +1585,7 @@ PQsetdbLogin(const char *pghost, const char *pgport, const char *pgoptions,
 
        if (pwd && pwd[0] != '\0')
        {
-               if (conn->pgpass)
-                       free(conn->pgpass);
+               free(conn->pgpass);
                conn->pgpass = strdup(pwd);
                if (!conn->pgpass)
                        goto oom_error;
@@ -4044,10 +4030,8 @@ makeEmptyPGconn(void)
 static void
 freePGconn(PGconn *conn)
 {
-       int                     i;
-
        /* let any event procs clean up their state data */
-       for (i = 0; i < conn->nEvents; i++)
+       for (int i = 0; i < conn->nEvents; i++)
        {
                PGEventConnDestroy evt;
 
@@ -4058,114 +4042,69 @@ freePGconn(PGconn *conn)
        }
 
        /* clean up pg_conn_host structures */
-       if (conn->connhost != NULL)
+       for (int i = 0; i < conn->nconnhost; ++i)
        {
-               for (i = 0; i < conn->nconnhost; ++i)
+               free(conn->connhost[i].host);
+               free(conn->connhost[i].hostaddr);
+               free(conn->connhost[i].port);
+               if (conn->connhost[i].password != NULL)
                {
-                       if (conn->connhost[i].host != NULL)
-                               free(conn->connhost[i].host);
-                       if (conn->connhost[i].hostaddr != NULL)
-                               free(conn->connhost[i].hostaddr);
-                       if (conn->connhost[i].port != NULL)
-                               free(conn->connhost[i].port);
-                       if (conn->connhost[i].password != NULL)
-                       {
-                               explicit_bzero(conn->connhost[i].password, strlen(conn->connhost[i].password));
-                               free(conn->connhost[i].password);
-                       }
+                       explicit_bzero(conn->connhost[i].password, strlen(conn->connhost[i].password));
+                       free(conn->connhost[i].password);
                }
-               free(conn->connhost);
        }
-
-       if (conn->client_encoding_initial)
-               free(conn->client_encoding_initial);
-       if (conn->events)
-               free(conn->events);
-       if (conn->pghost)
-               free(conn->pghost);
-       if (conn->pghostaddr)
-               free(conn->pghostaddr);
-       if (conn->pgport)
-               free(conn->pgport);
-       if (conn->connect_timeout)
-               free(conn->connect_timeout);
-       if (conn->pgtcp_user_timeout)
-               free(conn->pgtcp_user_timeout);
-       if (conn->pgoptions)
-               free(conn->pgoptions);
-       if (conn->appname)
-               free(conn->appname);
-       if (conn->fbappname)
-               free(conn->fbappname);
-       if (conn->dbName)
-               free(conn->dbName);
-       if (conn->replication)
-               free(conn->replication);
-       if (conn->pguser)
-               free(conn->pguser);
+       free(conn->connhost);
+
+       free(conn->client_encoding_initial);
+       free(conn->events);
+       free(conn->pghost);
+       free(conn->pghostaddr);
+       free(conn->pgport);
+       free(conn->connect_timeout);
+       free(conn->pgtcp_user_timeout);
+       free(conn->pgoptions);
+       free(conn->appname);
+       free(conn->fbappname);
+       free(conn->dbName);
+       free(conn->replication);
+       free(conn->pguser);
        if (conn->pgpass)
        {
                explicit_bzero(conn->pgpass, strlen(conn->pgpass));
                free(conn->pgpass);
        }
-       if (conn->pgpassfile)
-               free(conn->pgpassfile);
-       if (conn->channel_binding)
-               free(conn->channel_binding);
-       if (conn->keepalives)
-               free(conn->keepalives);
-       if (conn->keepalives_idle)
-               free(conn->keepalives_idle);
-       if (conn->keepalives_interval)
-               free(conn->keepalives_interval);
-       if (conn->keepalives_count)
-               free(conn->keepalives_count);
-       if (conn->sslmode)
-               free(conn->sslmode);
-       if (conn->sslcert)
-               free(conn->sslcert);
-       if (conn->sslkey)
-               free(conn->sslkey);
+       free(conn->pgpassfile);
+       free(conn->channel_binding);
+       free(conn->keepalives);
+       free(conn->keepalives_idle);
+       free(conn->keepalives_interval);
+       free(conn->keepalives_count);
+       free(conn->sslmode);
+       free(conn->sslcert);
+       free(conn->sslkey);
        if (conn->sslpassword)
        {
                explicit_bzero(conn->sslpassword, strlen(conn->sslpassword));
                free(conn->sslpassword);
        }
-       if (conn->sslrootcert)
-               free(conn->sslrootcert);
-       if (conn->sslcrl)
-               free(conn->sslcrl);
-       if (conn->sslcrldir)
-               free(conn->sslcrldir);
-       if (conn->sslcompression)
-               free(conn->sslcompression);
-       if (conn->sslsni)
-               free(conn->sslsni);
-       if (conn->requirepeer)
-               free(conn->requirepeer);
-       if (conn->ssl_min_protocol_version)
-               free(conn->ssl_min_protocol_version);
-       if (conn->ssl_max_protocol_version)
-               free(conn->ssl_max_protocol_version);
-       if (conn->gssencmode)
-               free(conn->gssencmode);
-       if (conn->krbsrvname)
-               free(conn->krbsrvname);
-       if (conn->gsslib)
-               free(conn->gsslib);
-       if (conn->connip)
-               free(conn->connip);
+       free(conn->sslrootcert);
+       free(conn->sslcrl);
+       free(conn->sslcrldir);
+       free(conn->sslcompression);
+       free(conn->sslsni);
+       free(conn->requirepeer);
+       free(conn->ssl_min_protocol_version);
+       free(conn->ssl_max_protocol_version);
+       free(conn->gssencmode);
+       free(conn->krbsrvname);
+       free(conn->gsslib);
+       free(conn->connip);
        /* Note that conn->Pfdebug is not ours to close or free */
-       if (conn->write_err_msg)
-               free(conn->write_err_msg);
-       if (conn->inBuffer)
-               free(conn->inBuffer);
-       if (conn->outBuffer)
-               free(conn->outBuffer);
-       if (conn->rowBuf)
-               free(conn->rowBuf);
-       if (conn->target_session_attrs)
-               free(conn->target_session_attrs);
+       free(conn->write_err_msg);
+       free(conn->inBuffer);
+       free(conn->outBuffer);
+       free(conn->rowBuf);
+       free(conn->target_session_attrs);
        termPQExpBuffer(&conn->errorMessage);
        termPQExpBuffer(&conn->workBuffer);
 
@@ -4433,8 +4372,7 @@ fail:
 void
 PQfreeCancel(PGcancel *cancel)
 {
-       if (cancel)
-               free(cancel);
+       free(cancel);
 }
 
 
@@ -5883,8 +5821,7 @@ conninfo_array_parse(const char *const *keywords, const char *const *values,
                                                {
                                                        if (strcmp(options[k].keyword, str_option->keyword) == 0)
                                                        {
-                                                               if (options[k].val)
-                                                                       free(options[k].val);
+                                                               free(options[k].val);
                                                                options[k].val = strdup(str_option->val);
                                                                if (!options[k].val)
                                                                {
@@ -5912,8 +5849,7 @@ conninfo_array_parse(const char *const *keywords, const char *const *values,
                                /*
                                 * Store the value, overriding previous settings
                                 */
-                               if (option->val)
-                                       free(option->val);
+                               free(option->val);
                                option->val = strdup(pvalue);
                                if (!option->val)
                                {
@@ -6344,8 +6280,7 @@ conninfo_uri_parse_options(PQconninfoOption *options, const char *uri,
 cleanup:
        termPQExpBuffer(&hostbuf);
        termPQExpBuffer(&portbuf);
-       if (buf)
-               free(buf);
+       free(buf);
        return retval;
 }
 
@@ -6655,8 +6590,7 @@ conninfo_storeval(PQconninfoOption *connOptions,
                }
        }
 
-       if (option->val)
-               free(option->val);
+       free(option->val);
        option->val = value_copy;
 
        return option;
@@ -6735,16 +6669,11 @@ PQconninfo(PGconn *conn)
 void
 PQconninfoFree(PQconninfoOption *connOptions)
 {
-       PQconninfoOption *option;
-
        if (connOptions == NULL)
                return;
 
-       for (option = connOptions; option->keyword != NULL; option++)
-       {
-               if (option->val != NULL)
-                       free(option->val);
-       }
+       for (PQconninfoOption *option = connOptions; option->keyword != NULL; option++)
+               free(option->val);
        free(connOptions);
 }
 
index 919cf5741d40dbaf05b054c9ab89836f48257b15..1750d647a8dbeb89fd2fd8d7c7879baa5bbe1f4c 100644 (file)
@@ -742,8 +742,7 @@ PQclear(PGresult *res)
                free(res->events[i].name);
        }
 
-       if (res->events)
-               free(res->events);
+       free(res->events);
 
        /* Free all the subsidiary blocks */
        while ((block = res->curBlock) != NULL)
@@ -753,8 +752,7 @@ PQclear(PGresult *res)
        }
 
        /* Free the top-level tuple pointer array */
-       if (res->tuples)
-               free(res->tuples);
+       free(res->tuples);
 
        /* zero out the pointer fields to catch programming errors */
        res->attDescs = NULL;
index 82fc592f06823e6d74af067b4a26909a68287066..783cd9b756f60e5d50b027af1b052130b7ee1433 100644 (file)
@@ -303,26 +303,19 @@ PQprint(FILE *fout, const PGresult *res, const PQprintOpt *po)
                        fputs("</table>\n", fout);
 
 exit:
-               if (fieldMax)
-                       free(fieldMax);
-               if (fieldNotNum)
-                       free(fieldNotNum);
-               if (border)
-                       free(border);
+               free(fieldMax);
+               free(fieldNotNum);
+               free(border);
                if (fields)
                {
                        /* if calloc succeeded, this shouldn't overflow size_t */
                        size_t          numfields = ((size_t) nTups + 1) * (size_t) nFields;
 
                        while (numfields-- > 0)
-                       {
-                               if (fields[numfields])
-                                       free(fields[numfields]);
-                       }
+                               free(fields[numfields]);
                        free(fields);
                }
-               if (fieldNames)
-                       free((void *) fieldNames);
+               free(fieldNames);
                if (usePipe)
                {
 #ifdef WIN32
@@ -679,8 +672,7 @@ PQdisplayTuples(const PGresult *res,
 
        fflush(fp);
 
-       if (fLength)
-               free(fLength);
+       free(fLength);
 }
 
 
@@ -763,8 +755,7 @@ PQprintTuples(const PGresult *res,
                }
        }
 
-       if (tborder)
-               free(tborder);
+       free(tborder);
 }
 
 
index 8046fcd884aa084aad1cca744fdcfe0e53d4923f..cc8a2b85938dc1244665f00bb18995a1f8fa401f 100644 (file)
@@ -309,8 +309,7 @@ pq_verify_peer_name_matches_certificate(PGconn *conn)
        }
 
        /* clean up */
-       if (first_name)
-               free(first_name);
+       free(first_name);
 
        return (rc == 1);
 }
index 3284c6eb52ab1ada00759888fb00d25feef13dcc..bea7b520f0a8504f1d3342f30c24c4c670255005 100644 (file)
@@ -270,8 +270,7 @@ freeaddrinfo(struct addrinfo *res)
                }
 #endif
 
-               if (res->ai_addr)
-                       free(res->ai_addr);
+               free(res->ai_addr);
                free(res);
        }
 }