Преглед на файлове

LibC: Don't leave /etc/passwd open in getlogin()

Andreas Kling преди 5 години
родител
ревизия
03c34cc73f
променени са 1 файла, в които са добавени 2 реда и са изтрити 0 реда
  1. 2 0
      Libraries/LibC/unistd.cpp

+ 2 - 0
Libraries/LibC/unistd.cpp

@@ -516,8 +516,10 @@ char* getlogin()
     static char __getlogin_buffer[256];
     static char __getlogin_buffer[256];
     if (auto* passwd = getpwuid(getuid())) {
     if (auto* passwd = getpwuid(getuid())) {
         strncpy(__getlogin_buffer, passwd->pw_name, sizeof(__getlogin_buffer));
         strncpy(__getlogin_buffer, passwd->pw_name, sizeof(__getlogin_buffer));
+        endpwent();
         return __getlogin_buffer;
         return __getlogin_buffer;
     }
     }
+    endpwent();
     return nullptr;
     return nullptr;
 }
 }