postgres.git / summary / log / commit / refs
commit 0cc540f0d03f280625ea9cda4d43bd79b5f8321d
Author: Michael Paquier <michael@paquier.xyz>
Date: Wed Sep 03 03:54:34 2025 +0000
libpq: Fix PQtrace() format for non-printable characters
PQtrace() was generating its output for non-printable characters without
casting the characters printed with unsigned char, leading to some extra
"\xffffff" generated in the output due to the fact that char may be
signed.
Oversights introduced by commit 198b3716dba6, so backpatch down to v14.
Author: Ran Benita <ran@unusedvar.com>
Discussion: https://postgr.es/m/a3383211-4539-459b-9d51-95c736ef08e0@app.fastmail.com
Backpatch-through: 14
src/interfaces/libpq/fe-trace.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/interfaces/libpq/fe-trace.c b/src/interfaces/libpq/fe-trace.c
index 8660d27926e..27baec78730 100644
--- a/src/interfaces/libpq/fe-trace.c
+++ b/src/interfaces/libpq/fe-trace.c
@@ -112,7 +112,7 @@ pqTraceOutputByte1(FILE *pfdebug, const char *data, int *cursor)
* that completes ErrorResponse and NoticeResponse messages.
*/
if (!isprint((unsigned char) *v))
- fprintf(pfdebug, " \\x%02x", *v);
+ fprintf(pfdebug, " \\x%02x", (unsigned char) *v);
else
fprintf(pfdebug, " %c", *v);
*cursor += 1;
@@ -200,7 +200,7 @@ pqTraceOutputNchar(FILE *pfdebug, int len, const char *data, int *cursor)
else
{
fwrite(v + next, 1, i - next, pfdebug);
- fprintf(pfdebug, "\\x%02x", v[i]);
+ fprintf(pfdebug, "\\x%02x", (unsigned char) v[i]);
next = i + 1;
}
}
[parent: b830f9d67463]