On Fri, May 16, 2025 at 09:54:47PM +0300, ant.v.morya...@gmail.com wrote: > From: Anton Moryakov <ant.v.morya...@gmail.com> > > Handle NULL pointer case in string formatting (%s) by printing '(null)' > instead of dereferencing NULL pointer. Makes behavior consistent with > standard printf implementations and prevents potential crashes. > > Signed-off-by: Anton Moryakov <ant.v.morya...@gmail.com>"
First, this is tiny-printf so the subject should be changed to be clearer about the impact. This is only used in very constrained environments. > --- > lib/tiny-printf.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/lib/tiny-printf.c b/lib/tiny-printf.c > index faf55d7f327..da596d72050 100644 > --- a/lib/tiny-printf.c > +++ b/lib/tiny-printf.c > @@ -306,6 +306,8 @@ static int _vprintf(struct printf_info *info, const char > *fmt, va_list va) > break; > case 's': > p = va_arg(va, char*); > + if (!p) > + p = "(null)"; > break; > case '%': > out(info, '%'); It's so constrained that I'd rather not include "(null)". We should end up printing nothing in this case, as this is handled in commit f0dab28915b7 ("tiny-printf: Handle NULL pointer argument to %s") and having a print where we just omit something, in this constrained environment, is acceptable (and should be the debug hint needed). -- Tom
signature.asc
Description: PGP signature