From: Shigeru Yoshida Date: Tue, 16 Jul 2024 02:09:05 +0000 (+0900) Subject: tipc: Return non-zero value from tipc_udp_addr2str() on error X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=fa96c6baef1b5385e2f0c0677b32b3839e716076;p=users%2Fdwmw2%2Flinux.git tipc: Return non-zero value from tipc_udp_addr2str() on error tipc_udp_addr2str() should return non-zero value if the UDP media address is invalid. Otherwise, a buffer overflow access can occur in tipc_media_addr_printf(). Fix this by returning 1 on an invalid UDP media address. Fixes: d0f91938bede ("tipc: add ip/udp media type") Signed-off-by: Shigeru Yoshida Reviewed-by: Tung Nguyen Signed-off-by: David S. Miller --- diff --git a/net/tipc/udp_media.c b/net/tipc/udp_media.c index b849a3d133a01..439f755399772 100644 --- a/net/tipc/udp_media.c +++ b/net/tipc/udp_media.c @@ -135,8 +135,11 @@ static int tipc_udp_addr2str(struct tipc_media_addr *a, char *buf, int size) snprintf(buf, size, "%pI4:%u", &ua->ipv4, ntohs(ua->port)); else if (ntohs(ua->proto) == ETH_P_IPV6) snprintf(buf, size, "%pI6:%u", &ua->ipv6, ntohs(ua->port)); - else + else { pr_err("Invalid UDP media address\n"); + return 1; + } + return 0; }