Pārlūkot izejas kodu

Userland: Don't leak buffer from getline in shuf program

Probably doesn't matter too too much since the program exits almost
immediately after, but there's the principle of the thing to consider.
Andrew Kaster 4 gadi atpakaļ
vecāks
revīzija
c2d8b8ec14
1 mainītis faili ar 4 papildinājumiem un 4 dzēšanām
  1. 4 4
      Userland/Utilities/shuf.cpp

+ 4 - 4
Userland/Utilities/shuf.cpp

@@ -40,12 +40,11 @@ int main([[maybe_unused]] int argc, [[maybe_unused]] char** argv)
 
     Vector<String> lines;
 
+    char* buffer = nullptr;
     for (;;) {
-        char* buffer = nullptr;
-        ssize_t buflen = 0;
-        size_t n;
+        size_t n = 0;
         errno = 0;
-        buflen = getline(&buffer, &n, stdin);
+        ssize_t buflen = getline(&buffer, &n, stdin);
         if (buflen == -1 && errno != 0) {
             perror("getline");
             exit(1);
@@ -54,6 +53,7 @@ int main([[maybe_unused]] int argc, [[maybe_unused]] char** argv)
             break;
         lines.append({ buffer, AK::ShouldChomp::Chomp });
     }
+    free(buffer);
 
     // Fisher-Yates shuffle
     String tmp;