Re: [PATCH 1/1] s390/dasd: fix string length handling

From: Nick Desaulniers
Date: Mon Aug 28 2023 - 18:54:21 EST


On Mon, Aug 28, 2023 at 3:46 PM Nick Desaulniers
<ndesaulniers@xxxxxxxxxx> wrote:
>
> On Mon, Aug 28, 2023 at 05:31:42PM +0200, Heiko Carstens wrote:
> > Building dasd_eckd.o with latest clang reveals this bug:
> >
> > CC drivers/s390/block/dasd_eckd.o
> > drivers/s390/block/dasd_eckd.c:1082:3: warning: 'snprintf' will always be truncated;
> > specified size is 1, but format string expands to at least 11 [-Wfortify-source]
> > 1082 | snprintf(print_uid, sizeof(*print_uid),
> > | ^
> > drivers/s390/block/dasd_eckd.c:1087:3: warning: 'snprintf' will always be truncated;
> > specified size is 1, but format string expands to at least 10 [-Wfortify-source]
> > 1087 | snprintf(print_uid, sizeof(*print_uid),
> > | ^
> >
> > Fix this by moving and using the existing UID_STRLEN for the arrays
> > that are being written to. Also rename UID_STRLEN to DASD_UID_STRLEN
> > to clarify its scope.
> >
> > Fixes: 23596961b437 ("s390/dasd: split up dasd_eckd_read_conf")
> > Reviewed-by: Peter Oberparleiter <oberpar@xxxxxxxxxxxxx>
> > Signed-off-by: Heiko Carstens <hca@xxxxxxxxxxxxx>
>
> Thanks for the patch! Nathan just reported a bunch of these. I took a
> look at these two and thought "yeah that's clearly a bug in the kernel
> sources." Fix LGTM.
>
> Reported-by: Nathan Chancellor <nathan@xxxxxxxxxx>
> Closes: https://github.com/ClangBuiltLinux/linux/issues/1923
> Reviewed-by: Nick Desaulniers <ndesaulniers@xxxxxxxxxx>

Meant to add:

Tested-by: Nick Desaulniers <ndesaulniers@xxxxxxxxxx> # build

>
> I also like David's idea of passing `char ident [DASD_UID_STRLEN]`, too,
> but I don't feel strongly either way.



--
Thanks,
~Nick Desaulniers