mirror of
https://git.postgresql.org/git/postgresql.git
synced 2025-01-30 19:00:29 +08:00
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.
This commit is contained in:
parent
b8476a09fe
commit
b34c8ec3ec
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user