mirror of
https://github.com/postgres/postgres.git
synced 2025-07-17 06:41:09 +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)
|
if (cmd->argc >= MAX_ARGS)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "statement has too many arguments (maximum is %d): %s\n", MAX_ARGS - 1, raw_sql);
|
fprintf(stderr, "statement has too many arguments (maximum is %d): %s\n", MAX_ARGS - 1, raw_sql);
|
||||||
|
free(name);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
sprintf(var, "$%d", cmd->argc);
|
sprintf(var, "$%d", cmd->argc);
|
||||||
if ((p = replaceVariable(&sql, p, eaten, var)) == NULL)
|
if ((p = replaceVariable(&sql, p, eaten, var)) == NULL)
|
||||||
|
{
|
||||||
|
free(name);
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
cmd->argv[cmd->argc] = name;
|
cmd->argv[cmd->argc] = name;
|
||||||
cmd->argc++;
|
cmd->argc++;
|
||||||
@ -1504,7 +1508,10 @@ process_commands(char *buf)
|
|||||||
case QUERY_EXTENDED:
|
case QUERY_EXTENDED:
|
||||||
case QUERY_PREPARED:
|
case QUERY_PREPARED:
|
||||||
if (!parseQuery(my_commands, p))
|
if (!parseQuery(my_commands, p))
|
||||||
|
{
|
||||||
|
free(my_commands);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return NULL;
|
return NULL;
|
||||||
@ -1560,6 +1567,7 @@ process_file(char *filename)
|
|||||||
commands = process_commands(&buf[i]);
|
commands = process_commands(&buf[i]);
|
||||||
if (commands == NULL)
|
if (commands == NULL)
|
||||||
{
|
{
|
||||||
|
free(my_commands);
|
||||||
fclose(fd);
|
fclose(fd);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -1630,6 +1638,7 @@ process_builtin(char *tb)
|
|||||||
commands = process_commands(buf);
|
commands = process_commands(buf);
|
||||||
if (commands == NULL)
|
if (commands == NULL)
|
||||||
{
|
{
|
||||||
|
free(my_commands);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user