mirror of
https://github.com/postgres/postgres.git
synced 2025-06-30 21:42:05 +03:00
Remove redundant null pointer checks before free()
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
This commit is contained in:
@ -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,
|
||||
|
Reference in New Issue
Block a user