From d4caaef47d9821636c5629d2feaf02cfc60a96bc Mon Sep 17 00:00:00 2001 From: Ilya Cherdakov Date: Tue, 8 Sep 2026 14:13:16 +0300 Subject: [PATCH] Validate Bitmapset input in test_bitmapset --- .../modules/test_bitmapset/test_bitmapset.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/test/modules/test_bitmapset/test_bitmapset.c b/src/test/modules/test_bitmapset/test_bitmapset.c index af8c664949e..1fc6d618611 100644 --- a/src/test/modules/test_bitmapset/test_bitmapset.c +++ b/src/test/modules/test_bitmapset/test_bitmapset.c @@ -88,14 +88,27 @@ PG_FUNCTION_INFO_V1(test_random_offset_operations); /* Encode/Decode to/from TEXT and Bitmapset */ #define BITMAPSET_TO_TEXT(bms) cstring_to_text(nodeToString(bms)) -#define TEXT_TO_BITMAPSET(str) ((Bitmapset *) stringToNode(text_to_cstring(str))) + +static Bitmapset * +text_to_bitmapset(text *arg) +{ + Node *node; + + node = stringToNode(text_to_cstring(arg)); + + if (node != NULL && !IsA(node, Bitmapset)) + ereport(ERROR, + (errmsg("input is not a Bitmapset"))); + + return (Bitmapset *) node; +} /* * Helper macro to fetch text parameters as Bitmapsets. SQL-NULL means empty * set. */ #define PG_ARG_GETBITMAPSET(n) \ - (PG_ARGISNULL(n) ? NULL : TEXT_TO_BITMAPSET(PG_GETARG_TEXT_PP(n))) + (PG_ARGISNULL(n) ? NULL : text_to_bitmapset(PG_GETARG_TEXT_PP(n))) /* * Helper macro to handle converting sets back to text, returning the -- 2.47.3