Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6f697b45 authored by Gurpreet Ghai's avatar Gurpreet Ghai Committed by Andre Eisenbach
Browse files

Check CCB state before executing channel state machine events

Use Case:
When a disconnect response is being executed, a timeout may
occur and timeout event gets enqueued in BTU process. When
processing of the disconnect event completes, timout event is received
at csm and is executed. However, by this time the Channel
Control Block is already released during previous event causing
errors.

Steps:
Various connection/disconnection scenario.

Failure:
If ccb is already released while processing of
previous event, the occurance of new enqueued event causes
crash.

Root cause:
Disconnection response event has already released
ccb and set lcb for this channel to null. The occurance of
timer event after this results in crash because lcb is
dereferenced while header creation to send disc response to
peer device.

Fix:
Added check for ccb state for whether it is currently in
use or released before executing events in csm.

Change-Id: I9110e6dd5273fa162b51c8aa15bd0030567d664b
parent ec5b7034
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment