From b702b46f688bc3ba7f8dc2d35c6eb25482366c4c Mon Sep 17 00:00:00 2001 From: Anestis Bechtsoudis Date: Fri, 5 Feb 2016 16:38:48 +0200 Subject: [PATCH] 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 --- init/service.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/init/service.cpp b/init/service.cpp index 0ddc48485..bdecc324f 100644 --- a/init/service.cpp +++ b/init/service.cpp @@ -416,7 +416,7 @@ bool Service::Start(const std::vector& 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",