From: Tatsuo Ishii Date: Tue, 30 Dec 2014 10:37:55 +0000 (+0900) Subject: Fix resource leak pointed out by Coverity. X-Git-Tag: REL9_0_19~39 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9b74f35744b68f6f1b3338f2053aa6b8d641f9dd;p=thirdparty%2Fpostgresql.git Fix resource leak pointed out by Coverity. --- diff --git a/contrib/pgbench/pgbench.c b/contrib/pgbench/pgbench.c index b695e7f95d7..37745be0064 100644 --- a/contrib/pgbench/pgbench.c +++ b/contrib/pgbench/pgbench.c @@ -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; }