Re: BUG #17280: global-buffer-overflow on select from pg_stat_slru

Michael Paquier <michael@paquier.xyz>

From: Michael Paquier <michael@paquier.xyz>
To: Kyotaro Horiguchi <horikyota.ntt@gmail.com>
Cc: a.kozhemyakin@postgrespro.ru, pgsql-bugs@lists.postgresql.org
Date: 2021-11-11T02:52:27Z
Lists: pgsql-bugs
On Thu, Nov 11, 2021 at 10:39:23AM +0900, Kyotaro Horiguchi wrote:
> The loop is designed not to directly rely on SRLU_NUM_ELEMENTS so if
> we honor that design, we would take the first or the third way. The
> first way is smallest but I prefer the third way as it is
> straightforward as such kind of loops.  The attached is that for the
> master.
> 
> The code was introduced at 13 and the attached applies to the versions
> back to 13.

Or it would be easier for the reader to assign stat after checking for
the result of pgstat_slru_name(), no?  I am not much a fan of this
code style that uses a counter, FWIW, but at the same time
SLRU_NUM_ELEMENTS is local to pgstat.c, so..
--
Michael

Commits

  1. Fix memory overrun when querying pg_stat_slru