diff options
author | Mark Salyzyn | 2015-06-24 18:22:54 -0500 |
---|---|---|
committer | Mark Salyzyn | 2015-06-25 09:39:24 -0500 |
commit | ed777e9eece54bf899f1a77a83f8b702970de686 (patch) | |
tree | 6aa05949e56271aa26abc03a16d63f37f04d4d9e /logd/LogBuffer.h | |
parent | 1a3334f22965f531449d890c1a97811fa249a754 (diff) | |
download | platform-system-core-ed777e9eece54bf899f1a77a83f8b702970de686.tar.gz platform-system-core-ed777e9eece54bf899f1a77a83f8b702970de686.tar.xz platform-system-core-ed777e9eece54bf899f1a77a83f8b702970de686.zip |
logd: serialize accesses to stats helpers
Quick low-risk to resolve possible hash table corruption.
Resolved an unlikely path memory leak.
ToDo: replace lock with nested lock so no lock
helpers are required.
Bug: 22068332
Change-Id: I303ab06608502c7d61d42f111a9c43366f184d0c
Diffstat (limited to 'logd/LogBuffer.h')
-rw-r--r-- | logd/LogBuffer.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/logd/LogBuffer.h b/logd/LogBuffer.h index 00b19b67b..a13fded8b 100644 --- a/logd/LogBuffer.h +++ b/logd/LogBuffer.h | |||
@@ -71,10 +71,12 @@ public: | |||
71 | // *strp uses malloc, use free to release. | 71 | // *strp uses malloc, use free to release. |
72 | void formatPrune(char **strp) { mPrune.format(strp); } | 72 | void formatPrune(char **strp) { mPrune.format(strp); } |
73 | 73 | ||
74 | // helper | 74 | // helper must be protected directly or implicitly by lock()/unlock() |
75 | char *pidToName(pid_t pid) { return stats.pidToName(pid); } | 75 | char *pidToName(pid_t pid) { return stats.pidToName(pid); } |
76 | uid_t pidToUid(pid_t pid) { return stats.pidToUid(pid); } | 76 | uid_t pidToUid(pid_t pid) { return stats.pidToUid(pid); } |
77 | char *uidToName(uid_t uid) { return stats.uidToName(uid); } | 77 | char *uidToName(uid_t uid) { return stats.uidToName(uid); } |
78 | void lock() { pthread_mutex_lock(&mLogElementsLock); } | ||
79 | void unlock() { pthread_mutex_unlock(&mLogElementsLock); } | ||
78 | 80 | ||
79 | private: | 81 | private: |
80 | void maybePrune(log_id_t id); | 82 | void maybePrune(log_id_t id); |