1From d1f9ccd5da1712477f30bf2662e8888395ed95cd Mon Sep 17 00:00:00 2001 2From: wuchangsheng <wuchangsheng2@huawei.com> 3Date: Wed, 21 Jul 2021 20:01:47 +0800 4Subject: [PATCH] fix stack-buffer-overflow in lwip_sock_make_addr and 5 lwip_getaddrname 6 7--- 8 src/api/sockets.c | 4 ++++ 9 1 file changed, 4 insertions(+) 10 11diff --git a/src/api/sockets.c b/src/api/sockets.c 12index e640945..7ce9378 100644 13--- a/src/api/sockets.c 14+++ b/src/api/sockets.c 15@@ -1319,6 +1319,8 @@ lwip_sock_make_addr(struct netconn *conn, ip_addr_t *fromaddr, u16_t port, 16 } else if (*fromlen > saddr.sa.sa_len) { 17 *fromlen = saddr.sa.sa_len; 18 } 19+#else 20+ *fromlen = LWIP_MIN(*fromlen, sizeof(saddr)); 21 #endif 22 MEMCPY(from, &saddr, *fromlen); 23 return truncated; 24@@ -3133,6 +3135,8 @@ lwip_getaddrname(int s, struct sockaddr *name, socklen_t *namelen, u8_t local) 25 if (*namelen > saddr.sa.sa_len) { 26 *namelen = saddr.sa.sa_len; 27 } 28+#else 29+ *namelen = LWIP_MIN(*namelen, sizeof(saddr)); 30 #endif 31 MEMCPY(name, &saddr, *namelen); 32 33-- 342.23.0 35 36