pg_freespacemap: Fix declaration of pg_freespace(regclass)
authorMichael Paquier <michael@paquier.xyz>
Wed, 8 Jan 2025 04:16:43 +0000 (13:16 +0900)
committerMichael Paquier <michael@paquier.xyz>
Wed, 8 Jan 2025 04:16:43 +0000 (13:16 +0900)
commite0c3d5122e6a4114af3092b7938c9b43d619e62c
treed20b2f3af28e22162432615433c7039604d6c47b
parent3f482940dbcbd15834a67894f4d9efdf5ceb7e16
pg_freespacemap: Fix declaration of pg_freespace(regclass)

This function called generate_series() without enforcing its input
argument types, making possible for an attacker to catch this call, by
defining for example a generate_series(int,bigint).

The internals of pg_freespace(regclass) are changed to force the use of
bigint for the inputs of generate_series().  A more consistent style is
applied for all its hardcoded values, while on it.

Issue introduced in 3f323eba89fb.

Reported-by: Noah Misch
Reviewed-by: Noah Misch
Discussion: https://postgr.es/m/20250106190428.ec.nmisch@google.com
contrib/pg_freespacemap/pg_freespacemap--1.2--1.3.sql