init: fix writepid wrong pid written in file(s)

When child (pid==0) executes fork branch 'pid_str'
will always be 0 writting wrong value to file(s).
Fix by utilizing getpid() to obtain correct pid.

Tracker link provides some insight on why use cases
aren't broken.

Bug: https://code.google.com/p/android/issues/detail?id=200392

Change-Id: I29989365a8bac94502c090918fa30e5cc88eb1ea
Signed-off-by: Anestis Bechtsoudis <anestis@census-labs.com>
This commit is contained in:
Anestis Bechtsoudis 2016-02-05 16:38:48 +02:00
parent 14c06e0769
commit b702b46f68
1 changed files with 1 additions and 1 deletions

View File

@ -416,7 +416,7 @@ bool Service::Start(const std::vector<std::string>& dynamic_args) {
}
}
std::string pid_str = StringPrintf("%d", pid);
std::string pid_str = StringPrintf("%d", getpid());
for (const auto& file : writepid_files_) {
if (!WriteStringToFile(pid_str, file)) {
ERROR("couldn't write %s to %s: %s\n",