On Tue, Nov 12, 2024 at 8:10 AM John Garry <john.g.garry@xxxxxxxxxx> wrote: > > For compiling with W=1, the following warning can be seen: > > drivers/md/raid5.c: In function ‘setup_conf’: > drivers/md/raid5.c:2423:12: error: ‘%s’ directive output may be truncated writing up to 31 bytes into a region of size between 16 and 26 [-Werror=format-truncation=] > "raid%d-%s", conf->level, mdname(conf->mddev)); > ^~ > drivers/md/raid5.c:2422:3: note: ‘snprintf’ output between 7 and 48 bytes into a destination of size 32 This is a bit confusing. Does this mean we actually need 48 bytes? I played with it myself, and 38 bytes is indeed enough to silent the warning. With 38 bytes, we have 4 bytes hole right behind cache_name, so I am thinking we should just use 40. WDYT? Thanks, Song > snprintf(conf->cache_name[0], namelen, > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > "raid%d-%s", conf->level, mdname(conf->mddev)); > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > cc1: all warnings being treated as errors > > Increase the array size to avoid this warning. > > Signed-off-by: John Garry <john.g.garry@xxxxxxxxxx> [...]