summaryrefslogtreecommitdiffstats
path: root/libc/bionic/fork.c
diff options
context:
space:
mode:
authorMike Chan <mike@android.com>2010-03-02 10:55:58 -0800
committerMike Chan <mike@android.com>2010-03-02 18:18:04 -0800
commit9f6915631b918a56e0e6be958fb14d274cbab322 (patch)
tree5d3b311f885dd053f4b816f69e8961ee21c37938 /libc/bionic/fork.c
parentbd9a90c443ee4582d2be1a68c6f3a2928d130ce4 (diff)
downloadbionic-9f6915631b918a56e0e6be958fb14d274cbab322.zip
bionic-9f6915631b918a56e0e6be958fb14d274cbab322.tar.gz
bionic-9f6915631b918a56e0e6be958fb14d274cbab322.tar.bz2
bonic: libc: cpuacct support for setuid functions
Any of the setuid functions now updates /acct/uid/ with its own tid before changing users. This is so we can properly account for cpu time per uid. Change-Id: I34186cf4d5228cac8439e582a9e26c01ef3011e4 Signed-off-by: Mike Chan <mike@android.com>
Diffstat (limited to 'libc/bionic/fork.c')
-rw-r--r--libc/bionic/fork.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/libc/bionic/fork.c b/libc/bionic/fork.c
index 1c6a4ba..e20f548 100644
--- a/libc/bionic/fork.c
+++ b/libc/bionic/fork.c
@@ -43,6 +43,14 @@ int fork(void)
ret = __fork();
if (ret != 0) { /* not a child process */
__timer_table_start_stop(0);
+ } else {
+ /*
+ * Newly created process must update cpu accounting.
+ * Call cpuacct_add passing in our uid, which will take
+ * the current task id and add it to the uid group passed
+ * as a parameter.
+ */
+ cpuacct_add(getuid());
}
return ret;
}