summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Salyzyn2015-06-24 18:22:54 -0500
committerMark Salyzyn2015-06-25 09:39:24 -0500
commited777e9eece54bf899f1a77a83f8b702970de686 (patch)
tree6aa05949e56271aa26abc03a16d63f37f04d4d9e /logd/LogBuffer.h
parent1a3334f22965f531449d890c1a97811fa249a754 (diff)
downloadplatform-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.h4
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
79private: 81private:
80 void maybePrune(log_id_t id); 82 void maybePrune(log_id_t id);