From: Robert Haas Date: Thu, 10 Aug 2017 15:48:42 +0000 (-0400) Subject: pgstatindex: Insert some casts to prevent overflow. X-Git-Tag: REL_10_BETA4~76 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0b7ba3d6474b8f58e74dba548886df3250805cdf;p=postgresql pgstatindex: Insert some casts to prevent overflow. This could cause hash indexes to report greater than 100% free space. Ashutosh Sharma, reviewed by Amit Kapila Discussion: http://postgr.es/m/CAE9k0PnCKfg-ZK1CwGZJPF1yKcG2A=GUgC3BMdNMzLAXVOo4Eg@mail.gmail.com --- diff --git a/contrib/pgstattuple/pgstatindex.c b/contrib/pgstattuple/pgstatindex.c index 44e322d1f9..9365ba7e02 100644 --- a/contrib/pgstattuple/pgstatindex.c +++ b/contrib/pgstattuple/pgstatindex.c @@ -687,13 +687,14 @@ pgstathashindex(PG_FUNCTION_ARGS) index_close(rel, AccessShareLock); /* Count unused pages as free space. */ - stats.free_space += stats.unused_pages * stats.space_per_page; + stats.free_space += (uint64) stats.unused_pages * stats.space_per_page; /* * Total space available for tuples excludes the metapage and the bitmap * pages. */ - total_space = (nblocks - (stats.bitmap_pages + 1)) * stats.space_per_page; + total_space = (uint64) (nblocks - (stats.bitmap_pages + 1)) * + stats.space_per_page; if (total_space == 0) free_percent = 0.0;