From: Raymond Toy <toy@rtp.ericsson.se>
Subject: [PATCHES] 970417: two more patches for large objects Here are two more patches: 1. pg_getint doesn't properly set the status flag when calling pqGetShort or pqGetLong. This is required when accessing large objects via libpq. This, combined with problem 1 above causes postgres to crash when postgres tries to print out the message that the status was not good. 2. ExceptionalCondition crashes when called with detail = NULL. This patch prevents dereferencing the NULL.
This commit is contained in:
parent
a1f229b19e
commit
8834795ebf
@ -7,7 +7,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/libpq/pqcomm.c,v 1.15 1997/04/16 06:25:13 vadim Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/libpq/pqcomm.c,v 1.16 1997/04/17 20:38:16 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -303,10 +303,10 @@ pq_getint(int b)
|
||||
status = ((n = fgetc(Pfin)) == EOF);
|
||||
break;
|
||||
case 2:
|
||||
pqGetShort(&n, Pfin);
|
||||
status = pqGetShort(&n, Pfin);
|
||||
break;
|
||||
case 4:
|
||||
pqGetLong(&n, Pfin);
|
||||
status = pqGetLong(&n, Pfin);
|
||||
break;
|
||||
default:
|
||||
fprintf(stderr, "** Unsupported size %d\n", b);
|
||||
|
@ -7,7 +7,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/error/assert.c,v 1.3 1996/11/11 11:49:40 scrappy Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/error/assert.c,v 1.4 1997/04/17 20:38:26 scrappy Exp $
|
||||
*
|
||||
* NOTE
|
||||
* This should eventually work with elog(), dlog(), etc.
|
||||
@ -46,7 +46,7 @@ ExceptionalCondition(char* conditionName,
|
||||
} else {
|
||||
fprintf(stderr,
|
||||
"%s(\"%s:%s\", File: \"%s\", Line: %d)\n",
|
||||
exceptionP->message, conditionName, detail,
|
||||
exceptionP->message, conditionName, detail == NULL ? "" : detail,
|
||||
fileName, lineNumber);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user