This is an automated email from the ASF dual-hosted git repository.

xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git


The following commit(s) were added to refs/heads/master by this push:
     new ec8cc6db37 net: add parameter check in psock_setsockopt
ec8cc6db37 is described below

commit ec8cc6db37ab4d5aef1f347cb3677c2ab2e6fe8c
Author: zhanghongyu <zhanghon...@xiaomi.com>
AuthorDate: Mon Nov 28 21:35:08 2022 +0800

    net: add parameter check in psock_setsockopt
    
    0  0x565a60bd in memmove (dest=0xf7fbaabe, src=0x0, count=3) at 
string/lib_memmove.c:58
    1  0x565d8b90 in usrsock_iovec_do (srcdst=0xf7fbaab0, srcdstlen=2018, 
iov=0xf3de798c, iovcnt=0, pos=0, from_iov=true, done=0xf3de78e7) at 
usrsock/usrsock_devif.c:155
    2  0x565d9349 in usrsock_iovec_get (dst=0xf7fbaab0, dstlen=2032, 
iov=0xf3de797c, iovcnt=2, pos=0, done=0xf3de78e7) at usrsock/usrsock_devif.c:612
    3  0x5659f4b9 in usrsock_request (iov=0xf3de797c, iovcnt=2) at 
usrsock/usrsock_rpmsg.c:210
    4  0x565d9436 in usrsock_do_request (conn=0x566316c0 
<g_usrsock_connections>, iov=0xf3de797c, iovcnt=2) at 
usrsock/usrsock_devif.c:659
    5  0x565dcfe9 in do_setsockopt_request (conn=0x566316c0 
<g_usrsock_connections>, level=1, option=7, value=0x0, value_len=4) at 
usrsock/usrsock_setsockopt.c:131
    6  0x565dd11e in usrsock_setsockopt (psock=0xf3dea840, level=1, option=7, 
value=0x0, value_len=4) at usrsock/usrsock_setsockopt.c:208
    7  0x565d4d31 in psock_setsockopt (psock=0xf3dea840, level=1, option=7, 
value=0x0, value_len=4) at socket/setsockopt.c:310
    8  0x565d4dde in setsockopt (sockfd=3, level=1, option=7, value=0x0, 
value_len=4) at socket/setsockopt.c:396
    
    Signed-off-by: zhanghongyu <zhanghon...@xiaomi.com>
---
 net/socket/setsockopt.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/net/socket/setsockopt.c b/net/socket/setsockopt.c
index c6edf82aa9..2e1e5df809 100644
--- a/net/socket/setsockopt.c
+++ b/net/socket/setsockopt.c
@@ -74,13 +74,6 @@ static int psock_socketlevel_option(FAR struct socket 
*psock, int option,
 {
   FAR struct socket_conn_s *conn = psock->s_conn;
 
-  /* Verify that the socket option if valid (but might not be supported ) */
-
-  if (!value)
-    {
-      return -EFAULT;
-    }
-
   /* Process the options always handled locally */
 
   switch (option)
@@ -296,6 +289,13 @@ int psock_setsockopt(FAR struct socket *psock, int level, 
int option,
 {
   int ret = -ENOPROTOOPT;
 
+  /* Verify that the socket option if valid (but might not be supported ) */
+
+  if (!value)
+    {
+      return -EFAULT;
+    }
+
   /* Verify that the sockfd corresponds to valid, allocated socket */
 
   if (psock == NULL || psock->s_conn == NULL)

Reply via email to