From b8b24ade0f08077fe5a43a2373e86886f7e36abc Mon Sep 17 00:00:00 2001 From: Peter Eisentraut Date: Thu, 16 Jun 2022 21:50:56 +0200 Subject: [PATCH v2 1/3] Remove redundant null pointer checks before free() --- .../pg_stat_statements/pg_stat_statements.c | 12 +- contrib/uuid-ossp/uuid-ossp.c | 6 +- src/backend/bootstrap/bootstrap.c | 3 +- src/backend/libpq/auth.c | 5 +- src/backend/postmaster/postmaster.c | 3 +- src/backend/regex/regc_pg_locale.c | 6 +- src/backend/tcop/postgres.c | 3 +- src/backend/utils/adt/pg_locale.c | 30 +-- src/backend/utils/error/elog.c | 3 +- src/backend/utils/init/miscinit.c | 3 +- src/backend/utils/misc/guc.c | 24 +- src/bin/pg_basebackup/pg_basebackup.c | 3 +- src/bin/pg_basebackup/streamutil.c | 3 +- src/bin/pg_dump/dumputils.c | 21 +- src/bin/pg_dump/pg_backup_archiver.c | 60 ++--- src/bin/pg_dump/pg_backup_custom.c | 6 +- src/bin/pg_dump/pg_backup_db.c | 3 +- src/bin/pg_dump/pg_backup_tar.c | 3 +- src/bin/pg_dump/pg_dump.c | 30 +-- src/bin/pg_dump/pg_dumpall.c | 6 +- src/bin/pgbench/pgbench.c | 6 +- src/bin/psql/command.c | 66 ++---- src/bin/psql/copy.c | 3 +- src/bin/psql/describe.c | 6 +- src/bin/psql/input.c | 3 +- src/bin/psql/tab-complete.c | 15 +- src/common/fe_memutils.c | 3 +- src/fe_utils/connect_utils.c | 3 +- src/fe_utils/string_utils.c | 6 +- src/interfaces/ecpg/pgtypeslib/numeric.c | 6 +- src/interfaces/ecpg/preproc/descriptor.c | 3 +- src/interfaces/libpq/fe-auth-scram.c | 33 +-- src/interfaces/libpq/fe-auth.c | 18 +- src/interfaces/libpq/fe-connect.c | 211 ++++++------------ src/interfaces/libpq/fe-exec.c | 6 +- src/interfaces/libpq/fe-print.c | 23 +- src/interfaces/libpq/fe-secure-common.c | 3 +- src/port/getaddrinfo.c | 3 +- 38 files changed, 214 insertions(+), 436 deletions(-) diff --git a/contrib/pg_stat_statements/pg_stat_statements.c b/contrib/pg_stat_statements/pg_stat_statements.c index 768cedd91a..4acfddcdb8 100644 --- a/contrib/pg_stat_statements/pg_stat_statements.c +++ b/contrib/pg_stat_statements/pg_stat_statements.c @@ -809,8 +809,7 @@ pgss_shmem_shutdown(int code, Datum arg) (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_qtexts(void) /* 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 diff --git a/contrib/uuid-ossp/uuid-ossp.c b/contrib/uuid-ossp/uuid-ossp.c index 7c0fb812fd..b868812358 100644 --- a/contrib/uuid-ossp/uuid-ossp.c +++ b/contrib/uuid-ossp/uuid-ossp.c @@ -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, diff --git a/src/backend/bootstrap/bootstrap.c b/src/backend/bootstrap/bootstrap.c index 9a610d41ad..088556ab54 100644 --- a/src/backend/bootstrap/bootstrap.c +++ b/src/backend/bootstrap/bootstrap.c @@ -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: diff --git a/src/backend/libpq/auth.c b/src/backend/libpq/auth.c index efc53f3135..2d9ab7edce 100644 --- a/src/backend/libpq/auth.c +++ b/src/backend/libpq/auth.c @@ -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; diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c index dde4bc25b1..d7257e4056 100644 --- a/src/backend/postmaster/postmaster.c +++ b/src/backend/postmaster/postmaster.c @@ -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; } diff --git a/src/backend/regex/regc_pg_locale.c b/src/backend/regex/regc_pg_locale.c index e1f9df0918..02d462a659 100644 --- a/src/backend/regex/regc_pg_locale.c +++ b/src/backend/regex/regc_pg_locale.c @@ -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; diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c index 8b6b5bbaaa..495cbf2006 100644 --- a/src/backend/tcop/postgres.c +++ b/src/backend/tcop/postgres.c @@ -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; } diff --git a/src/backend/utils/adt/pg_locale.c b/src/backend/utils/adt/pg_locale.c index a0490a7522..ea42e70e43 100644 --- a/src/backend/utils/adt/pg_locale.c +++ b/src/backend/utils/adt/pg_locale.c @@ -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); } /* diff --git a/src/backend/utils/error/elog.c b/src/backend/utils/error/elog.c index 55ee5423af..59124bd9cc 100644 --- a/src/backend/utils/error/elog.c +++ b/src/backend/utils/error/elog.c @@ -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; diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c index b25bd0e583..eb43b2c5e5 100644 --- a/src/backend/utils/init/miscinit.c +++ b/src/backend/utils/init/miscinit.c @@ -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; } diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index a7cc49898b..0b3186eead 100644 --- a/src/backend/utils/misc/guc.c +++ b/src/backend/utils/misc/guc.c @@ -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) diff --git a/src/bin/pg_basebackup/pg_basebackup.c b/src/bin/pg_basebackup/pg_basebackup.c index 4adb170d46..b66eac707a 100644 --- a/src/bin/pg_basebackup/pg_basebackup.c +++ b/src/bin/pg_basebackup/pg_basebackup.c @@ -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 diff --git a/src/bin/pg_basebackup/streamutil.c b/src/bin/pg_basebackup/streamutil.c index 299b9b7621..8e820c0c71 100644 --- a/src/bin/pg_basebackup/streamutil.c +++ b/src/bin/pg_basebackup/streamutil.c @@ -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; } diff --git a/src/bin/pg_dump/dumputils.c b/src/bin/pg_dump/dumputils.c index 3e68dfc78f..6e501a5413 100644 --- a/src/bin/pg_dump/dumputils.c +++ b/src/bin/pg_dump/dumputils.c @@ -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; } diff --git a/src/bin/pg_dump/pg_backup_archiver.c b/src/bin/pg_dump/pg_backup_archiver.c index 77fe51a3a5..233198afc0 100644 --- a/src/bin/pg_dump/pg_backup_archiver.c +++ b/src/bin/pg_dump/pg_backup_archiver.c @@ -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); } diff --git a/src/bin/pg_dump/pg_backup_custom.c b/src/bin/pg_dump/pg_backup_custom.c index 3443eef6b0..1023fea01b 100644 --- a/src/bin/pg_dump/pg_backup_custom.c +++ b/src/bin/pg_dump/pg_backup_custom.c @@ -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); } /* diff --git a/src/bin/pg_dump/pg_backup_db.c b/src/bin/pg_dump/pg_backup_db.c index 89cdbf80e0..28baa68fd4 100644 --- a/src/bin/pg_dump/pg_backup_db.c +++ b/src/bin/pg_dump/pg_backup_db.c @@ -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)); } diff --git a/src/bin/pg_dump/pg_backup_tar.c b/src/bin/pg_dump/pg_backup_tar.c index 39d71badb7..bfc49b66d2 100644 --- a/src/bin/pg_dump/pg_backup_tar.c +++ b/src/bin/pg_dump/pg_backup_tar.c @@ -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; } diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c index 7cc9c72e49..c871cb727d 100644 --- a/src/bin/pg_dump/pg_dump.c +++ b/src/bin/pg_dump/pg_dump.c @@ -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 */ diff --git a/src/bin/pg_dump/pg_dumpall.c b/src/bin/pg_dump/pg_dumpall.c index ae41a652d7..da5cf85272 100644 --- a/src/bin/pg_dump/pg_dumpall.c +++ b/src/bin/pg_dump/pg_dumpall.c @@ -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); diff --git a/src/bin/pgbench/pgbench.c b/src/bin/pgbench/pgbench.c index fbb74bdc4c..36b5c8fff7 100644 --- a/src/bin/pgbench/pgbench.c +++ b/src/bin/pgbench/pgbench.c @@ -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; diff --git a/src/bin/psql/command.c b/src/bin/psql/command.c index b51d28780b..4495f7a907 100644 --- a/src/bin/psql/command.c +++ b/src/bin/psql/command.c @@ -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); } /* @@ -4780,16 +4763,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, diff --git a/src/bin/psql/copy.c b/src/bin/psql/copy.c index 424a429e1e..c181682a13 100644 --- a/src/bin/psql/copy.c +++ b/src/bin/psql/copy.c @@ -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; } diff --git a/src/bin/psql/describe.c b/src/bin/psql/describe.c index 1a5d924a23..7a21777d9e 100644 --- a/src/bin/psql/describe.c +++ b/src/bin/psql/describe.c @@ -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 @@ describeOneTableDetails(const char *schemaname, termPQExpBuffer(&title); termPQExpBuffer(&tmpbuf); - if (view_def) - free(view_def); + free(view_def); if (res) PQclear(res); diff --git a/src/bin/psql/input.c b/src/bin/psql/input.c index 416185d659..6cc7ddda71 100644 --- a/src/bin/psql/input.c +++ b/src/bin/psql/input.c @@ -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); diff --git a/src/bin/psql/tab-complete.c b/src/bin/psql/tab-complete.c index e1cc753489..8452b3dad1 100644 --- a/src/bin/psql/tab-complete.c +++ b/src/bin/psql/tab-complete.c @@ -4759,11 +4759,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 */ @@ -5165,12 +5163,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 */ diff --git a/src/common/fe_memutils.c b/src/common/fe_memutils.c index 21fcce5430..b1e6c65576 100644 --- a/src/common/fe_memutils.c +++ b/src/common/fe_memutils.c @@ -104,8 +104,7 @@ pg_strdup(const char *in) void pg_free(void *ptr) { - if (ptr != NULL) - free(ptr); + free(ptr); } /* diff --git a/src/fe_utils/connect_utils.c b/src/fe_utils/connect_utils.c index f2e583f9fa..1cc97b72f7 100644 --- a/src/fe_utils/connect_utils.c +++ b/src/fe_utils/connect_utils.c @@ -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; } diff --git a/src/fe_utils/string_utils.c b/src/fe_utils/string_utils.c index c3ea4fc186..f9ea08705a 100644 --- a/src/fe_utils/string_utils.c +++ b/src/fe_utils/string_utils.c @@ -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; } diff --git a/src/interfaces/ecpg/pgtypeslib/numeric.c b/src/interfaces/ecpg/pgtypeslib/numeric.c index 34efc9045f..a97b3300cb 100644 --- a/src/interfaces/ecpg/pgtypeslib/numeric.c +++ b/src/interfaces/ecpg/pgtypeslib/numeric.c @@ -16,11 +16,7 @@ #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) /* ---------- diff --git a/src/interfaces/ecpg/preproc/descriptor.c b/src/interfaces/ecpg/preproc/descriptor.c index 35d94711d5..f4b1878289 100644 --- a/src/interfaces/ecpg/preproc/descriptor.c +++ b/src/interfaces/ecpg/preproc/descriptor.c @@ -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; diff --git a/src/interfaces/libpq/fe-auth-scram.c b/src/interfaces/libpq/fe-auth-scram.c index e616200704..5012806fa5 100644 --- a/src/interfaces/libpq/fe-auth-scram.c +++ b/src/interfaces/libpq/fe-auth-scram.c @@ -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; } diff --git a/src/interfaces/libpq/fe-auth.c b/src/interfaces/libpq/fe-auth.c index 0a072a36dc..49a1c626f6 100644 --- a/src/interfaces/libpq/fe-auth.c +++ b/src/interfaces/libpq/fe-auth.c @@ -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; } diff --git a/src/interfaces/libpq/fe-connect.c b/src/interfaces/libpq/fe-connect.c index 6e936bbff3..057c9da0ed 100644 --- a/src/interfaces/libpq/fe-connect.c +++ b/src/interfaces/libpq/fe-connect.c @@ -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 @@ PQgetCancel(PGconn *conn) 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); } diff --git a/src/interfaces/libpq/fe-exec.c b/src/interfaces/libpq/fe-exec.c index 919cf5741d..1750d647a8 100644 --- a/src/interfaces/libpq/fe-exec.c +++ b/src/interfaces/libpq/fe-exec.c @@ -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; diff --git a/src/interfaces/libpq/fe-print.c b/src/interfaces/libpq/fe-print.c index 82fc592f06..783cd9b756 100644 --- a/src/interfaces/libpq/fe-print.c +++ b/src/interfaces/libpq/fe-print.c @@ -303,26 +303,19 @@ PQprint(FILE *fout, const PGresult *res, const PQprintOpt *po) fputs("\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); } diff --git a/src/interfaces/libpq/fe-secure-common.c b/src/interfaces/libpq/fe-secure-common.c index 8046fcd884..cc8a2b8593 100644 --- a/src/interfaces/libpq/fe-secure-common.c +++ b/src/interfaces/libpq/fe-secure-common.c @@ -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); } diff --git a/src/port/getaddrinfo.c b/src/port/getaddrinfo.c index 3284c6eb52..bea7b520f0 100644 --- a/src/port/getaddrinfo.c +++ b/src/port/getaddrinfo.c @@ -270,8 +270,7 @@ freeaddrinfo(struct addrinfo *res) } #endif - if (res->ai_addr) - free(res->ai_addr); + free(res->ai_addr); free(res); } } -- 2.36.1