lwip/0101-fix-wrong-namelen-in-getaddrname.patch
zhengjiebing b1131249c8 fix wrong namelen in getaddrname
(cherry picked from commit fd0efad0e0ebf417186f15b4486fb9df95c7beec)
2024-01-18 11:30:51 +08:00

18 lines
584 B
Diff

src/api/sockets.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/api/sockets.c b/src/api/sockets.c
index 15053b3..c987a2b 100644
--- a/src/api/sockets.c
+++ b/src/api/sockets.c
@@ -3020,7 +3020,8 @@ lwip_getaddrname(int s, struct sockaddr *name, socklen_t *namelen, u8_t local)
*namelen = saddr.sa.sa_len;
}
#else
- *namelen = LWIP_MIN(*namelen, sizeof(saddr));
+ u8_t sa_len = IP_IS_V4_VAL(naddr) ? sizeof(struct sockaddr_in) : sizeof(struct sockaddr_in6);
+ *namelen = LWIP_MIN(*namelen, sa_len);
#endif
MEMCPY(name, &saddr, *namelen);