From fe7badf2aca03df1b0113b8440a3b9c49a0ebd1c Mon Sep 17 00:00:00 2001 From: chao an Date: Wed, 31 Aug 2022 21:43:11 +0800 Subject: [PATCH] net/getsockname: small addrlen should be a valid value fix usrsock getsockname fail nsh> usrsocktest ... Testing group "basic_getsockname" => [TEST ASSERT FAILED!] In function "basic_getsockname_open": line 170: Assertion `(ssize_t)((ret)) == (ssize_t)((0))' failed. got value: -1 should be: 0 Group "basic_getsockname": [FAILED] ... Reference: GETSOCKNAME(2) NAME getsockname - get socket name ... DESCRIPTION ... The returned address is truncated if the buffer provided is too small; in this case, addrlen will return a value greater than was supplied to the call. Signed-off-by: chao an --- net/socket/getsockname.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/socket/getsockname.c b/net/socket/getsockname.c index 60db534e01e..30a7cd6479b 100644 --- a/net/socket/getsockname.c +++ b/net/socket/getsockname.c @@ -88,7 +88,7 @@ int psock_getsockname(FAR struct socket *psock, FAR struct sockaddr *addr, /* Some sanity checking... */ - if (addr == NULL || addrlen == NULL || *addrlen <= 0) + if (addr == NULL || addrlen == NULL) { return -EINVAL; }