On Fri, May 16, 2025 at 09:54:47PM +0300, [email protected] wrote: > From: Anton Moryakov <[email protected]> > > 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 <[email protected]>"
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

