Преглед изворни кода

posix os_socket_accept: stop assuming socklen_t is unsigned int (#4488)

YAMAMOTO Takashi пре 5 месеци
родитељ
комит
46d4e248bb
1 измењених фајлова са 8 додато и 3 уклоњено
  1. 8 3
      core/shared/platform/common/posix/posix_socket.c

+ 8 - 3
core/shared/platform/common/posix/posix_socket.c

@@ -220,12 +220,17 @@ int
 os_socket_accept(bh_socket_t server_sock, bh_socket_t *sock, void *addr,
                  unsigned int *addrlen)
 {
-    *sock = accept(server_sock, addr, addrlen);
-
+    if (addr == NULL) {
+        *sock = accept(server_sock, NULL, NULL);
+    }
+    else {
+        socklen_t len = *addrlen;
+        *sock = accept(server_sock, addr, &len);
+        *addrlen = len;
+    }
     if (*sock < 0) {
         return BHT_ERROR;
     }
-
     return BHT_OK;
 }