Sunday, April 07, 2024

Re: 7.5 /var/log/messages - vfprintf %s NULL in "%.*s"

Дана 24/04/07 10:11AM, Stuart Henderson написа:
> Yes. It's very common though, especially when constructing strings for
> debug logging. I see this a lot with software in the GNOME ecosystem
> using sprintf for this.

Programmers who pass NULL to %s format specifier are writing incorrect code,
whatever project they are contributing to. Mainstream projects like GNOME are
a mess, and only getting worse with every iteration anyway.


> That's interesting about the compiler optimisation for printf->puts,
> though I think it won't be used in many cases where the pointer nay be
> null so many uses of this won't trigger crashes for that reason.

Keep in mind the quoted answer states this about gcc. I'm not sure about
Clang/LLVM. In any case, passing NULL to %s specifier in *printf is incorrect
code.

No comments:

Post a Comment