Fix memory overrun when querying pg_stat_slru
authorMichael Paquier <[email protected]>
Fri, 12 Nov 2021 12:49:21 +0000 (21:49 +0900)
committerMichael Paquier <[email protected]>
Fri, 12 Nov 2021 12:49:21 +0000 (21:49 +0900)
commita45ed975c58fde7303eeae488b313bf0314383f7
tree7660a2c42c4942a21e542daa17b6de3bf234a75e
parent335474691054a74d771f0e7c24d25e800e3a37b6
Fix memory overrun when querying pg_stat_slru

pg_stat_get_slru() in pgstatfuncs.c would point to one element after the
end of the array PgStat_SLRUStats when finishing to scan its entries.
This had no direct consequences as no data from the extra memory area
was read, but static analyzers would rightfully complain here.  So let's
be clean.

While on it, this adds one regression test in the area reserved for
system views.

Reported-by: Alexander Kozhemyakin, via AddressSanitizer
Author: Kyotaro Horiguchi
Discussion: https://postgr.es/m/17280-37da556e86032070@postgresql.org
Backpatch-through: 13
src/backend/utils/adt/pgstatfuncs.c
src/test/regress/expected/sysviews.out
src/test/regress/sql/sysviews.sql