BLE: Fix access to attcCb.onDeck and attsCb.prepWriteQueue access #13785
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary of changes
This PR fixes invalid array accesses in the cordio gatt server and gatt client. The structures
attcCb_t
andattsCb_t
have both an array to store outstanding requests. An entry in the array is reserved for each connection pre allocated.These arrays were accessed by connection ID which is incorrect as connection ID starts at 1, not 0.
The fix is to subtract 1 to the connection id to get the correct index, this is done in other part of the code but wasn't for these two arrays.
The bug is not visible in mbed os if there is less than 3 concurrent connections but it shows up if there's as many concurrent connections as the maximum number provisioned at compile time: The GattServer services are then removed at the end of the connection.
Impact of changes
Migration actions required
None
Documentation
None
Pull request type
Test results
Reviewers