summaryrefslogtreecommitdiff
path: root/src/interfaces/libpq/fe-trace.c
diff options
context:
space:
mode:
authorMichael Paquier <michael@paquier.xyz>2025-09-03 12:54:32 +0900
committerMichael Paquier <michael@paquier.xyz>2025-09-03 12:54:32 +0900
commit0b274c4759a943a9d0c771f0fcd7ffa285abdcd0 (patch)
treebe955719ad202056b3f71386c09144ce66d49082 /src/interfaces/libpq/fe-trace.c
parent8286bce0a06a3975bc7d292b5c5f972fc31a9a57 (diff)
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
Diffstat (limited to 'src/interfaces/libpq/fe-trace.c')
-rw-r--r--src/interfaces/libpq/fe-trace.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/interfaces/libpq/fe-trace.c b/src/interfaces/libpq/fe-trace.c
index 5d68cf2eb3b..a985de5fc86 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;
}
}