summaryrefslogtreecommitdiffstats
path: root/native_client_sdk
diff options
context:
space:
mode:
authorsbc <sbc@chromium.org>2015-04-03 11:58:30 -0700
committerCommit bot <commit-bot@chromium.org>2015-04-03 18:59:56 +0000
commit968100467a776d8b6881966fa19caef5e1dee944 (patch)
tree2e899781fd3fae6b3234feace0f4aaf30fcbdace /native_client_sdk
parentc57ee7725c564a12f33f4f2eb6d3cac0f0921978 (diff)
downloadchromium_src-968100467a776d8b6881966fa19caef5e1dee944.zip
chromium_src-968100467a776d8b6881966fa19caef5e1dee944.tar.gz
chromium_src-968100467a776d8b6881966fa19caef5e1dee944.tar.bz2
[NaCL SDK] nacl_io: Add missing lock to fix crash bug in jspipe
A missing lock call was resulting in EventEmitter::RiaseEvents_Locked being called without the emitter lock being held. This resulted possible simultaneous access the listeners_ member which is a STL map. BUG=468686 Review URL: https://codereview.chromium.org/1059113002 Cr-Commit-Position: refs/heads/master@{#323788}
Diffstat (limited to 'native_client_sdk')
-rw-r--r--native_client_sdk/src/libraries/nacl_io/devfs/jspipe_event_emitter.cc2
1 files changed, 2 insertions, 0 deletions
diff --git a/native_client_sdk/src/libraries/nacl_io/devfs/jspipe_event_emitter.cc b/native_client_sdk/src/libraries/nacl_io/devfs/jspipe_event_emitter.cc
index 8bf4d03..c3d1a3f 100644
--- a/native_client_sdk/src/libraries/nacl_io/devfs/jspipe_event_emitter.cc
+++ b/native_client_sdk/src/libraries/nacl_io/devfs/jspipe_event_emitter.cc
@@ -194,12 +194,14 @@ Error JSPipeEventEmitter::SendAckMessage(size_t byte_count) {
}
size_t JSPipeEventEmitter::HandleJSWrite(const char* data, size_t len) {
+ AUTO_LOCK(GetLock());
size_t out_len = input_fifo_.Write(data, len);
UpdateStatus_Locked();
return out_len;
}
void JSPipeEventEmitter::HandleJSAck(size_t byte_count) {
+ AUTO_LOCK(GetLock());
if (byte_count > bytes_sent_) {
ERROR("Unexpected byte count: %" PRIuS, byte_count);
return;