Diff between 2c920f6d6845bb97c1e9d5adff420dc92b660c0e and 464c36f7d80bdee7b7949f0746ecb584303f8e8d

Changed Files

File Additions Deletions Status
audio/avrcp.c +7 -4 modified

Full Patch

diff --git a/audio/avrcp.c b/audio/avrcp.c
index b1c3d54..5f8277c 100644
--- a/audio/avrcp.c
+++ b/audio/avrcp.c
@@ -796,6 +796,7 @@ static uint8_t avrcp_handle_get_play_status(struct avrcp_player *player,
 	uint16_t len = ntohs(pdu->params_len);
 	uint32_t position;
 	uint32_t duration;
+	void *pduration;
 
 	if (len != 0) {
 		pdu->params_len = htons(1);
@@ -804,11 +805,13 @@ static uint8_t avrcp_handle_get_play_status(struct avrcp_player *player,
 	}
 
 	position = player->cb->get_position(player->user_data);
-	duration = GPOINTER_TO_UINT(player->cb->get_metadata(
-						AVRCP_MEDIA_ATTRIBUTE_DURATION,
-						player->user_data));
+	pduration = player->cb->get_metadata(AVRCP_MEDIA_ATTRIBUTE_DURATION,
+							player->user_data);
+	if (pduration != NULL)
+		duration = htonl(GPOINTER_TO_UINT(pduration));
+	else
+		duration = htonl(UINT32_MAX);
 
-	duration = htonl(duration);
 	position = htonl(position);
 
 	memcpy(&pdu->params[0], &duration, 4);