From: Tom Lane Date: Wed, 31 Mar 2021 21:14:16 +0000 (-0400) Subject: Fix unportable use of isprint(). X-Git-Tag: REL_14_BETA1~397 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9e20406dd847d0f8c1cbd803786c6d0ad33bcbdd;p=thirdparty%2Fpostgresql.git Fix unportable use of isprint(). We must cast the arguments of functions to unsigned char to avoid problems where char is signed. Speaking of which, considering that this *is* a function, it's rather remarkable that we aren't seeing more complaints about not having included that header. Per buildfarm. --- diff --git a/src/interfaces/libpq/fe-trace.c b/src/interfaces/libpq/fe-trace.c index 5faeee74519..ca59c183182 100644 --- a/src/interfaces/libpq/fe-trace.c +++ b/src/interfaces/libpq/fe-trace.c @@ -14,6 +14,7 @@ #include "postgres_fe.h" +#include #include #include @@ -28,6 +29,7 @@ #include "libpq-int.h" #include "port/pg_bswap.h" + /* Enable tracing */ void PQtrace(PGconn *conn, FILE *debug_port) @@ -102,7 +104,7 @@ pqTraceOutputByte1(FILE *pfdebug, const char *data, int *cursor) * Show non-printable data in hex format, including the terminating \0 * that completes ErrorResponse and NoticeResponse messages. */ - if (!isprint(*v)) + if (!isprint((unsigned char) *v)) fprintf(pfdebug, " \\x%02x", *v); else fprintf(pfdebug, " %c", *v); @@ -186,7 +188,7 @@ pqTraceOutputNchar(FILE *pfdebug, int len, const char *data, int *cursor) for (next = i = 0; i < len; ++i) { - if (isprint(v[i])) + if (isprint((unsigned char) v[i])) continue; else {