Fix very minor memory leaks in psql's command.c.
\drds leaked its second pattern argument if any, and \connect leaked any empty-string or "-" arguments. These are old bugs, but it's hard to imagine any real use-case where the leaks could amount to anything meaningful, so not bothering with a back-patch. Daniel Gustafsson and Tom Lane Discussion: https://postgr.es/m/3641F19B-336A-431A-86CE-A80562505C5E@yesql.se
This commit is contained in:
parent
efd7f8e365
commit
dc4da3dc84
@ -806,6 +806,9 @@ exec_command_d(PsqlScanState scan_state, bool active_branch, const char *cmd)
|
|||||||
pattern2 = psql_scan_slash_option(scan_state,
|
pattern2 = psql_scan_slash_option(scan_state,
|
||||||
OT_NORMAL, NULL, true);
|
OT_NORMAL, NULL, true);
|
||||||
success = listDbRoleSettings(pattern, pattern2);
|
success = listDbRoleSettings(pattern, pattern2);
|
||||||
|
|
||||||
|
if (pattern2)
|
||||||
|
free(pattern2);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
status = PSQL_CMD_UNKNOWN;
|
status = PSQL_CMD_UNKNOWN;
|
||||||
@ -2725,6 +2728,8 @@ exec_command_slash_command_help(PsqlScanState scan_state, bool active_branch)
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Read and interpret an argument to the \connect slash command.
|
* Read and interpret an argument to the \connect slash command.
|
||||||
|
*
|
||||||
|
* Returns a malloc'd string, or NULL if no/empty argument.
|
||||||
*/
|
*/
|
||||||
static char *
|
static char *
|
||||||
read_connect_arg(PsqlScanState scan_state)
|
read_connect_arg(PsqlScanState scan_state)
|
||||||
@ -2750,7 +2755,10 @@ read_connect_arg(PsqlScanState scan_state)
|
|||||||
return result;
|
return result;
|
||||||
|
|
||||||
if (*result == '\0' || strcmp(result, "-") == 0)
|
if (*result == '\0' || strcmp(result, "-") == 0)
|
||||||
|
{
|
||||||
|
free(result);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user