diff --git a/subsys/net/lib/sockets/sockets_net_mgmt.c b/subsys/net/lib/sockets/sockets_net_mgmt.c index 7f0fa646876f1..2213e0e1fad1a 100644 --- a/subsys/net/lib/sockets/sockets_net_mgmt.c +++ b/subsys/net/lib/sockets/sockets_net_mgmt.c @@ -205,8 +205,12 @@ static ssize_t znet_mgmt_recvfrom(struct net_mgmt_socket *mgmt, void *buf, if (info) { ret = info_len + sizeof(hdr); - ret = MIN(max_len, ret); - memcpy(©_to[sizeof(hdr)], info, ret); + if (ret > max_len) { + errno = EMSGSIZE; + return -1; + } + + memcpy(©_to[sizeof(hdr)], info, info_len); } else { ret = 0; }