]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Fix pg_stat_get_backend_activity() to use multi-byte truncated result
authorMichael Paquier <michael@paquier.xyz>
Sat, 27 Dec 2025 08:23:51 +0000 (17:23 +0900)
committerMichael Paquier <michael@paquier.xyz>
Sat, 27 Dec 2025 08:23:51 +0000 (17:23 +0900)
pg_stat_get_backend_activity() calls pgstat_clip_activity() to ensure
that the reported query string is correctly truncated when it finishes
with an incomplete multi-byte sequence.  However, the result returned by
the function was not what pgstat_clip_activity() generated, but the
non-truncated, original, contents from PgBackendStatus.st_activity_raw.

Oversight in 54b6cd589ac2, so backpatch all the way down.

Author: Chao Li <li.evan.chao@gmail.com>
Discussion: https://postgr.es/m/CAEoWx2mDzwc48q2EK9tSXS6iJMJ35wvxNQnHX+rXjy5VgLvJQw@mail.gmail.com
Backpatch-through: 14

src/backend/utils/adt/pgstatfuncs.c

index 1c12ddbae493c53dfe0f9520e2d9b35716f534e6..6a6ff9288f41c896eb5e03d341270219e549ff83 100644 (file)
@@ -785,7 +785,7 @@ pg_stat_get_backend_activity(PG_FUNCTION_ARGS)
                activity = beentry->st_activity_raw;
 
        clipped_activity = pgstat_clip_activity(activity);
-       ret = cstring_to_text(activity);
+       ret = cstring_to_text(clipped_activity);
        pfree(clipped_activity);
 
        PG_RETURN_TEXT_P(ret);