Selaa lähdekoodia

Kernel: Stop treating port 0 (ephemeral auto bind) as a privileged port

Binding to port 0 is used to signal to listen() to bind to any port
that is available. (in serenity's case, to the port range of 32768 to
60999, which are not privileged ports)
Idan Horowitz 4 vuotta sitten
vanhempi
commit
dbc13e1ea2
1 muutettua tiedostoa jossa 1 lisäystä ja 1 poistoa
  1. 1 1
      Kernel/Net/IPv4Socket.cpp

+ 1 - 1
Kernel/Net/IPv4Socket.cpp

@@ -112,7 +112,7 @@ KResult IPv4Socket::bind(Userspace<const sockaddr*> user_address, socklen_t addr
 
     auto requested_local_port = ntohs(address.sin_port);
     if (!Process::current()->is_superuser()) {
-        if (requested_local_port < 1024) {
+        if (requested_local_port > 0 && requested_local_port < 1024) {
             dbgln("UID {} attempted to bind {} to port {}", Process::current()->uid(), class_name(), requested_local_port);
             return EACCES;
         }