Re: Integer undeflow in fprintf in dsa.c
Daniel Gustafsson <daniel@yesql.se>
From: Daniel Gustafsson <daniel@yesql.se>
To: Ильясов Ян <ianilyasov@outlook.com>
Cc: PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2024-02-20T12:00:19Z
Lists: pgsql-hackers
> On 20 Feb 2024, at 12:28, Ильясов Ян <ianilyasov@outlook.com> wrote: > fprintf(stderr, > " segment bin %zu (at least %d contiguous pages free):\n", > i, 1 << (i - 1)); > > In case i equals zero user will get "at least -2147483648 contiguous pages free". That does indeed seem like an oversight. > I believe that this is a mistake, and fprintf should print "at least 0 contiguous pages free" > in case i equals zero. The message "at least 0 contiguous pages free" reads a bit nonsensical though, wouldn't it be preferrable to check for i being zero and print a custom message for that case? Something like the below untested sketch? + if (i == 0) + fprintf(stderr, + " segment bin %zu (no contiguous free pages):\n", i); + else + fprintf(stderr, + " segment bin %zu (at least %d contiguous pages free):\n", + i, 1 << (i - 1)); -- Daniel Gustafsson
Commits
-
Fix integer underflow in shared memory debugging
- d5c3d6ca0152 13.15 landed
- a30a305584b8 16.3 landed
- 6fd144e3a966 17.0 landed
- 55ea12a28277 15.7 landed
- 24dc4afebd5a 12.19 landed
- 217928ddb45a 14.12 landed
-
Introduce dynamic shared memory areas.
- 13df76a537cc 10.0 cited