summaryrefslogtreecommitdiff
path: root/libs/gui/BLASTBufferQueue.cpp
diff options
context:
space:
mode:
author Steven Moreland <smoreland@google.com> 2023-04-27 19:38:00 +0000
committer Steven Moreland <smoreland@google.com> 2023-05-01 17:16:36 +0000
commit7957867cc13bd17c55eaf5624c2905037d881b59 (patch)
tree07cd2f9545b0f6051f2cbbcddd0586304b980d51 /libs/gui/BLASTBufferQueue.cpp
parent9843b07b819443a394c40b2eeb7a69bb59630101 (diff)
sm: lazy service - fix race
There is a possible race: - service registers binder A - service registers client callback (cc1) for A - sm send cc1 "A hasClients" - service registers binder A (again - bad behavior!) - side effect: "hasClients" implicitly set to false - service registers client callback (cc2) for A - sm sends cc1 and cc2 "A hasClients" Due to an intentionally overly careful check in client callbacks, they crash when this double-send of 'hasClients' is hit. This CL retains the state of cc1 in order to fix the issue. Comments are added with various details about the implementation, and b/279948722 is filed to resolve these comments. Bug: 279898063 Test: aidl_lazy_test Change-Id: Ida443d5b02f19736baabdc57ff283995cdcc2a87
Diffstat (limited to 'libs/gui/BLASTBufferQueue.cpp')
0 files changed, 0 insertions, 0 deletions