From 2af53f3762513e397177d9b13dcfdbba7effc7a0 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Fri, 26 May 2000 01:26:19 +0000 Subject: [PATCH] After closing frontend socket, set MyProcPort->sock = -1 to ensure that subsequent I/O attempts fail cleanly. I'm speculating about failure scenarios in which we do pq_close, then something in a proc_exit routine opens a file (re-using that kernel FD number), then something else fails and tries to write an elog message to the frontend ... message ends up in opened file, oops. No known examples of this but it seems like a potential hole. --- src/backend/libpq/pqcomm.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/backend/libpq/pqcomm.c b/src/backend/libpq/pqcomm.c index aec4f34c7d..a7d757066e 100644 --- a/src/backend/libpq/pqcomm.c +++ b/src/backend/libpq/pqcomm.c @@ -29,7 +29,7 @@ * Portions Copyright (c) 1996-2000, PostgreSQL, Inc * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: pqcomm.c,v 1.91 2000/05/21 21:19:53 tgl Exp $ + * $Id: pqcomm.c,v 1.92 2000/05/26 01:26:19 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -144,7 +144,11 @@ void pq_close(void) { if (MyProcPort != NULL) + { close(MyProcPort->sock); + /* make sure any subsequent attempts to do I/O fail cleanly */ + MyProcPort->sock = -1; + } } -- GitLab