From 67a1c2d8fc132e19ee641f550f90fdae69cd8997 Mon Sep 17 00:00:00 2001 From: Luiz Augusto von Dentz Date: Tue, 18 Jun 2013 11:09:53 +0300 Subject: [PATCH] audio/AVRCP: Fix invalid response to RegisterNotification The response to RegisterNotification for event settings changed was not setting the initial length properly which cause the code to send malformed/invalid PDUs. --- profiles/audio/avrcp.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/profiles/audio/avrcp.c b/profiles/audio/avrcp.c index f0554fe6e..f028da9b8 100644 --- a/profiles/audio/avrcp.c +++ b/profiles/audio/avrcp.c @@ -1450,20 +1450,25 @@ static uint8_t avrcp_handle_register_notification(struct avrcp *session, len = 1; break; case AVRCP_EVENT_SETTINGS_CHANGED: + len = 1; settings = player_list_settings(player); - pdu->params[++len] = g_list_length(settings); + pdu->params[len++] = g_list_length(settings); for (; settings; settings = settings->next) { const char *key = settings->data; - uint8_t attr = attr_to_val(key); + int attr; int val; + attr = attr_to_val(key); + if (attr < 0) + continue; + val = player_get_setting(player, attr); if (val < 0) continue; - pdu->params[++len] = attr; - pdu->params[++len] = val; + pdu->params[len++] = attr; + pdu->params[len++] = val; } break; -- 2.47.3