From: Arnd Bergmann <a...@arndb.de> Date: Wed, 28 Mar 2018 16:02:04 +0200
> gcc points out that the combined length of the fixed-length inputs to > l->name is larger than the destination buffer size: > > net/tipc/link.c: In function 'tipc_link_create': > net/tipc/link.c:465:26: error: '%s' directive writing up to 32 bytes into a > region of size between 26 and 58 [-Werror=format-overflow=] > sprintf(l->name, "%s:%s-%s:unknown", self_str, if_name, peer_str); > ^~ ~~~~~~~~ > net/tipc/link.c:465:2: note: 'sprintf' output 11 or more bytes (assuming 75) > into a destination of size 60 > sprintf(l->name, "%s:%s-%s:unknown", self_str, if_name, peer_str); > > Using snprintf() ensures that the destination is still a nul-terminated > string in all cases. It's still theoretically possible that the string > gets trunctated though, so this patch should be carefully reviewed to > ensure that either truncation is impossible in practice, or that we're > ok with the truncation. > > Fixes: 25b0b9c4e835 ("tipc: handle collisions of 32-bit node address hash > values") > Signed-off-by: Arnd Bergmann <a...@arndb.de> Based upon the discussion here, it looks like Jon will fix this in a different way by increasing the destination buffer size.