diff options
author | sbc <sbc@chromium.org> | 2015-04-03 11:58:30 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-04-03 18:59:56 +0000 |
commit | 968100467a776d8b6881966fa19caef5e1dee944 (patch) | |
tree | 2e899781fd3fae6b3234feace0f4aaf30fcbdace /native_client_sdk | |
parent | c57ee7725c564a12f33f4f2eb6d3cac0f0921978 (diff) | |
download | chromium_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.cc | 2 |
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; |