Hi

I investigated the crashes in "xmlnamespaces to xmlelement" patch and it
looks like there was a badly used makeString function. The argument should
not be null, elsewhere serialization to string fails - and deserialization
doesn't support this case.

https://cirrus-ci.com/task/6543809942650880

I propose to add an assert there like (make check-world passed)

diff --git a/src/backend/nodes/value.c b/src/backend/nodes/value.c
index 5a8c1ce2478..620a97ece79 100644
--- a/src/backend/nodes/value.c
+++ b/src/backend/nodes/value.c
@@ -64,6 +64,8 @@ makeString(char *str)
 {
    String     *v = makeNode(String);

+   Assert(str);
+
    v->sval = str;
    return v;
 }

Regards

Pavel
From 62ee71bd9ee36bf3c33f3d00a6f8f81782ccf91f Mon Sep 17 00:00:00 2001
From: "ok...@github.com" <pavel.steh...@gmail.com>
Date: Wed, 19 Feb 2025 07:04:23 +0100
Subject: [PATCH] initial

---
 src/backend/nodes/value.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/backend/nodes/value.c b/src/backend/nodes/value.c
index 5a8c1ce2478..620a97ece79 100644
--- a/src/backend/nodes/value.c
+++ b/src/backend/nodes/value.c
@@ -64,6 +64,8 @@ makeString(char *str)
 {
 	String	   *v = makeNode(String);
 
+	Assert(str);
+
 	v->sval = str;
 	return v;
 }
-- 
2.48.1

Reply via email to