From 8834795ebf68f0518f6498043e1c7f2abe81f8ec Mon Sep 17 00:00:00 2001 From: "Marc G. Fournier" Date: Thu, 17 Apr 1997 20:38:26 +0000 Subject: [PATCH] From: Raymond Toy 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. --- src/backend/libpq/pqcomm.c | 6 +++--- src/backend/utils/error/assert.c | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/backend/libpq/pqcomm.c b/src/backend/libpq/pqcomm.c index dcd99cbe1b4..c0fa810e379 100644 --- a/src/backend/libpq/pqcomm.c +++ b/src/backend/libpq/pqcomm.c @@ -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); diff --git a/src/backend/utils/error/assert.c b/src/backend/utils/error/assert.c index bdc4f0b0e39..4fb99ced1b9 100644 --- a/src/backend/utils/error/assert.c +++ b/src/backend/utils/error/assert.c @@ -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); }