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> I also like David's idea of passing `char ident [DASD_UID_STRLEN]`, too, but I don't feel strongly either way.