Skip to content

Bluetooth: TBS: Flags are not cleared if client unsubscribes #104511

@Thalley

Description

@Thalley

Describe the bug

The struct tbs_flags contains information about pending notifications and states for each client. The _changed flags for notifications are set only if a client is subscribed to changes, at the point in time where the change happens.

Technically, however unlikely, a client may unsubscribe for changes. This can be determined by the cfg_changed functions like current_calls_cfg_changed. However in those functions, any pending changes are not cleared, which means that pending notifications in notify_handler_cb will continuously try to be sent, until the device re-subscribes or disconnects. Additionally, the try_change_dialing_call_to_alerting may never succeed due to this.

The solution is probably to just cleared the _changed bits for that client when it unsubscribes.

Regression

  • This is a regression.

Steps to reproduce

N/A

Relevant log output

N/A

Impact

Annoyance – Minor irritation; no significant impact on usability or functionality.

Environment

No response

Additional Context

No response

Metadata

Metadata

Type

Projects

Status

To do

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions