mirror of
https://github.com/postgres/postgres.git
synced 2025-07-15 19:21:59 +03:00
Fix resource leak pointed out by Coverity.
This commit is contained in:
@ -1337,12 +1337,16 @@ parseQuery(Command *cmd, const char *raw_sql)
|
||||
if (cmd->argc >= MAX_ARGS)
|
||||
{
|
||||
fprintf(stderr, "statement has too many arguments (maximum is %d): %s\n", MAX_ARGS - 1, raw_sql);
|
||||
free(name);
|
||||
return false;
|
||||
}
|
||||
|
||||
sprintf(var, "$%d", cmd->argc);
|
||||
if ((p = replaceVariable(&sql, p, eaten, var)) == NULL)
|
||||
{
|
||||
free(name);
|
||||
return false;
|
||||
}
|
||||
|
||||
cmd->argv[cmd->argc] = name;
|
||||
cmd->argc++;
|
||||
@ -1504,7 +1508,10 @@ process_commands(char *buf)
|
||||
case QUERY_EXTENDED:
|
||||
case QUERY_PREPARED:
|
||||
if (!parseQuery(my_commands, p))
|
||||
{
|
||||
free(my_commands);
|
||||
return NULL;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
return NULL;
|
||||
@ -1560,6 +1567,7 @@ process_file(char *filename)
|
||||
commands = process_commands(&buf[i]);
|
||||
if (commands == NULL)
|
||||
{
|
||||
free(my_commands);
|
||||
fclose(fd);
|
||||
return false;
|
||||
}
|
||||
@ -1630,6 +1638,7 @@ process_builtin(char *tb)
|
||||
commands = process_commands(buf);
|
||||
if (commands == NULL)
|
||||
{
|
||||
free(my_commands);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user