BUG: test_bloomfilter error message reports wrong variable and wrong format specifier
Jianghua Yang <yjhjstz@gmail.com>
From: Jianghua Yang <yjhjstz@gmail.com>
To: pgsql-hackers@lists.postgresql.org
Date: 2026-03-24T12:31:55Z
Lists: pgsql-hackers
Attachments
- v1-0001-Fix-wrong-variable-and-format-specifier-in-test_b.patch (application/octet-stream) patch v1-0001
Hi,
I found a small bug in
src/test/modules/test_bloomfilter/test_bloomfilter.c, line 128.
The current code:
int64 nelements = PG_GETARG_INT64(1);
int tests = PG_GETARG_INT32(3);
if (tests <= 0)
elog(ERROR, "invalid number of tests: %d", tests);
if (nelements < 0)
elog(ERROR, "invalid number of elements: %d", tests);
The second elog has two issues:
1. It checks nelements but prints tests. For example, with
nelements = -1 and tests = 1, the error message would be
"invalid number of elements: 1" — which is misleading when debugging.
2. nelements is int64, so the format specifier should be
INT64_FORMAT rather than %d. Using %d for int64 is
undefined behavior on 32-bit platforms.
The fix:
if (nelements < 0)
elog(ERROR, "invalid number of elements: " INT64_FORMAT, nelements);
A patch is attached.
Regards,
Jianghua Yang
Commits
-
test_bloomfilter: Fix error message.
- c7b9f1611332 19 (unreleased) landed