Selaa lähdekoodia

Kernel: Fix sys$waitid(P_ALL, WNOHANG) return value

According to POSIX, waitid() should fill si_signo and si_pid members
with zeroes if there are no children that have already changed their
state by the time of the call. Let's just fill the whole structure
with zeroes to avoid leaking kernel memory.
Sergey Bugaev 5 vuotta sitten
vanhempi
commit
1b866bbf42
1 muutettua tiedostoa jossa 1 lisäystä ja 1 poistoa
  1. 1 1
      Kernel/Process.cpp

+ 1 - 1
Kernel/Process.cpp

@@ -2314,7 +2314,7 @@ KResultOr<siginfo_t> Process::do_waitid(idtype_t idtype, int id, int options)
         // FIXME: Figure out what WNOHANG should do with stopped children.
         if (idtype == P_ALL) {
             InterruptDisabler disabler;
-            siginfo_t siginfo;
+            siginfo_t siginfo = { 0 };
             for_each_child([&siginfo](Process& process) {
                 if (process.is_dead())
                     siginfo = reap(process);