Commit b34c8ec3 authored by Marc G. Fournier's avatar Marc G. Fournier

From: James Hughes <jamesh@interpath.com>

This is a patch to fix crashes in psql when executing queries from
an external file. The code also adds error checking to verify that
memory for "query" was allocated. The conditional for the block of
code was changed from "query == NULL" to "query_alloced == false".

The conditional, "query == NULL", was never true. This prevented
the memory being allocated for "query". A few lines later, an attempt
to write to an un-allocated memory area generated a SIGSEGV causing
the frontend to crash.
parent b8476a09
......@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
* $Header: /cvsroot/pgsql/src/bin/psql/Attic/psql.c,v 1.128 1998/01/23 19:21:11 scrappy Exp $
* $Header: /cvsroot/pgsql/src/bin/psql/Attic/psql.c,v 1.129 1998/01/23 19:22:24 scrappy Exp $
*
*-------------------------------------------------------------------------
*/
......@@ -2093,10 +2093,15 @@ MainLoop(PsqlSettings *pset, char *query, FILE *source)
int paren_level;
char *query_start;
if (query == NULL)
if (query_alloced == false)
{
query = malloc(MAX_QUERY_BUFFER);
query_alloced = true;
if((query = malloc(MAX_QUERY_BUFFER)) == NULL) {
perror("Memory Allocation Failed");
} else {
query_alloced = true;
}
}
interactive = ((source == stdin) && !pset->notty);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment