Ver código fonte

LibC: Fix get{sock,peer}name to match their kernel-side prototypes

In f4302b58fb0, the kernel-side syscalls (e.g Process::sys$getsockname)
were updated to use SC_get{sock,peer}name_params, but the libc
functions were not updated.
Yonatan Goldschmidt 5 anos atrás
pai
commit
2ac3d33c63
1 arquivos alterados com 4 adições e 2 exclusões
  1. 4 2
      Libraries/LibC/sys/socket.cpp

+ 4 - 2
Libraries/LibC/sys/socket.cpp

@@ -108,13 +108,15 @@ int setsockopt(int sockfd, int level, int option, const void* value, socklen_t v
 
 int getsockname(int sockfd, struct sockaddr* addr, socklen_t* addrlen)
 {
-    int rc = syscall(SC_getsockname, sockfd, addr, addrlen);
+    Syscall::SC_getsockname_params params { sockfd, addr, addrlen };
+    int rc = syscall(SC_getsockname, &params);
     __RETURN_WITH_ERRNO(rc, rc, -1);
 }
 
 int getpeername(int sockfd, struct sockaddr* addr, socklen_t* addrlen)
 {
-    int rc = syscall(SC_getpeername, sockfd, addr, addrlen);
+    Syscall::SC_getpeername_params params { sockfd, addr, addrlen };
+    int rc = syscall(SC_getpeername, &params);
     __RETURN_WITH_ERRNO(rc, rc, -1);
 }
 }