Re: printf %s with NULL pointer (was Re: BUG #17098: Assert failed on composing an error message when adding a type to an extension being dropped)
Ranier Vilela <ranier.vf@gmail.com>
From: Ranier Vilela <ranier.vf@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Laurenz Albe <laurenz.albe@cybertec.at>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2021-07-13T18:04:19Z
Lists: pgsql-bugs, pgsql-hackers
Em ter., 13 de jul. de 2021 às 11:29, Tom Lane <tgl@sss.pgh.pa.us> escreveu: > Laurenz Albe <laurenz.albe@cybertec.at> writes: > > On Mon, 2021-07-12 at 13:20 -0400, Tom Lane wrote: > >> So my feeling about this is that switching snprintf.c's behavior > >> would produce some net gain in robustness for v12 and up, while > >> not making things any worse for the older branches. I still hold > >> to the opinion that we've already flushed out all the cases of > >> passing NULL that we're likely to find via ordinary testing. > > > New cases could be introduced in the future and might remain undetected. > > What about adding an Assert that gags on NULLs, but still printing them > > as "(null)"? That would help find such problems in a debug build. > > I think you're missing my main point, which is that it seems certain that > there are corner cases that do this *now*. I'm proposing that we redefine > this as not being a crash case, full stop. > I agree with Laurenz Albe, that on Debug builds, *printf with NULL, must crash. On production builds, fine, printing (null). This will put a little more pressure on support, "Hey what mean's (null) in my logs?", but it's ok. regards, Ranier Vilela
Commits
-
Make printf("%s", NULL) print "(null)" instead of crashing.
- c0a6f83deba9 13.4 landed
- 9329b923542f 11.13 landed
- 89ad14cd7870 14.0 landed
- 7e09b504d023 9.6.23 landed
- 5a435289d1a8 10.18 landed
- 4c8a14e8d993 12.8 landed
- 3779ac62d709 15.0 landed
-
Lock the extension during ALTER EXTENSION ADD/DROP.
- 92340ba5a795 12.8 landed
- 734be249d2c8 9.6.23 landed
- 6bd9ae173d37 11.13 landed
- 69dfc36fd54d 14.0 landed
- 626731db26ae 15.0 landed
- 1d49c888755b 10.18 landed
- 1c612bc98ec3 13.4 landed
-
Add an assertion that we don't pass NULL to snprintf("%s").
- 0c62356cc877 11.0 cited
-
Fix broken logic for reporting PL/Python function names in errcontext.
- e748e902def4 11.0 cited