Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a8a56c8b authored by Kweku Adams's avatar Kweku Adams
Browse files

Preventing zombie process creation.

Bug: 78363774
Test: flash device, run 'adb shell incident', then check
'adb shell ps | grep incidentd'

Change-Id: I473894eb1c05ce8557da846d1ccdcbfa672356eb
parent 519249f4
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -902,11 +902,16 @@ status_t TombstoneSection::BlockingCall(int pipeWriteFd) const {
        // Read from the pipe concurrently to avoid blocking the child.
        FdBuffer buffer;
        err = buffer.readFully(dumpPipe.readFd().get());
        // Wait on the child to avoid it becoming a zombie process.
        status_t cStatus = wait_child(child);
        if (err != NO_ERROR) {
            ALOGW("TombstoneSection '%s' failed to read stack dump: %d", this->name.string(), err);
            dumpPipe.readFd().reset();
            break;
        }
        if (cStatus != NO_ERROR) {
            ALOGE("TombstoneSection '%s' child had an issue: %s\n", this->name.string(), strerror(-cStatus));
        }

        auto dump = std::make_unique<char[]>(buffer.size());
        auto iterator = buffer.data();