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:
Marc G. Fournier 1997-04-17 20:38:26 +00:00
parent a1f229b19e
commit 8834795ebf
2 changed files with 5 additions and 5 deletions

View File

@ -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);

View File

@ -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);
}