harden-pg_cursor-against-null-sourceText.patch

text/x-diff

Filename: harden-pg_cursor-against-null-sourceText.patch
Type: text/x-diff
Part: 0
Message: Re: Server crash when selecting from pg_cursors

Patch

Format: unified
File+
src/backend/utils/mmgr/portalmem.c 3 0
diff --git a/src/backend/utils/mmgr/portalmem.c b/src/backend/utils/mmgr/portalmem.c
index 4a24613537..93137820ac 100644
--- a/src/backend/utils/mmgr/portalmem.c
+++ b/src/backend/utils/mmgr/portalmem.c
@@ -1150,6 +1150,9 @@ pg_cursor(PG_FUNCTION_ARGS)
 		/* report only "visible" entries */
 		if (!portal->visible)
 			continue;
+		/* also ignore it if PortalDefineQuery hasn't been called yet */
+		if (!portal->sourceText)
+			continue;
 
 		values[0] = CStringGetTextDatum(portal->name);
 		values[1] = CStringGetTextDatum(portal->sourceText);