diff options
author | 2016-03-30 19:01:16 +0530 | |
---|---|---|
committer | 2016-04-04 21:11:55 +0000 | |
commit | 17043071a6b076b8c6bb42c14baaa45a8fc6c5fc (patch) | |
tree | 82489a63d1748bfd0b7df845460a0246720f4eee | |
parent | 2b667cda95ccc79d153e9924912e581166d3ced4 (diff) |
A2DP_SINK: initialize track handle to null
- initialize track handle to null
- prevent invoking audiotrack API in case handle is null
Bug: 27613411
Change-Id: I1a8637fd2cbb3012b29c1930f978100e7f0c58d8
-rw-r--r-- | system/btif/src/btif_avrcp_audio_track.cpp | 19 | ||||
-rw-r--r-- | system/btif/src/btif_media_task.c | 6 |
2 files changed, 20 insertions, 5 deletions
diff --git a/system/btif/src/btif_avrcp_audio_track.cpp b/system/btif/src/btif_avrcp_audio_track.cpp index 456b7091c9..73ad6492bc 100644 --- a/system/btif/src/btif_avrcp_audio_track.cpp +++ b/system/btif/src/btif_avrcp_audio_track.cpp @@ -45,7 +45,7 @@ void *BtifAvrcpAudioTrackCreate(int trackFreq, int channelType) assert(track != NULL); BtifAvrcpAudioTrack *trackHolder = new BtifAvrcpAudioTrack; - assert(trackHolder); + assert(trackHolder != NULL); trackHolder->track = track; if (trackHolder->track->initCheck() != 0) @@ -62,8 +62,9 @@ void *BtifAvrcpAudioTrackCreate(int trackFreq, int channelType) void BtifAvrcpAudioTrackStart(void *handle) { + assert(handle != NULL); BtifAvrcpAudioTrack *trackHolder = static_cast<BtifAvrcpAudioTrack*>(handle); - assert(trackHolder); + assert(trackHolder != NULL); assert(trackHolder->track != NULL); LOG_VERBOSE(LOG_TAG, "%s Track.cpp: btStartTrack", __func__); trackHolder->track->start(); @@ -71,6 +72,10 @@ void BtifAvrcpAudioTrackStart(void *handle) void BtifAvrcpAudioTrackStop(void *handle) { + if (handle == NULL) { + LOG_DEBUG(LOG_TAG, "%s handle is null.", __func__); + return; + } BtifAvrcpAudioTrack *trackHolder = static_cast<BtifAvrcpAudioTrack*>(handle); if (trackHolder != NULL && trackHolder->track != NULL) { LOG_VERBOSE(LOG_TAG, "%s Track.cpp: btStartTrack", __func__); @@ -80,6 +85,10 @@ void BtifAvrcpAudioTrackStop(void *handle) void BtifAvrcpAudioTrackDelete(void *handle) { + if (handle == NULL) { + LOG_DEBUG(LOG_TAG, "%s handle is null.", __func__); + return; + } BtifAvrcpAudioTrack *trackHolder = static_cast<BtifAvrcpAudioTrack*>(handle); if (trackHolder != NULL && trackHolder->track != NULL) { LOG_VERBOSE(LOG_TAG, "%s Track.cpp: btStartTrack", __func__); @@ -97,6 +106,10 @@ void BtifAvrcpAudioTrackDelete(void *handle) void BtifAvrcpAudioTrackPause(void *handle) { + if (handle == NULL) { + LOG_DEBUG(LOG_TAG, "%s handle is null.", __func__); + return; + } BtifAvrcpAudioTrack *trackHolder = static_cast<BtifAvrcpAudioTrack*>(handle); if (trackHolder != NULL && trackHolder->track != NULL) { LOG_VERBOSE(LOG_TAG, "%s Track.cpp: btStartTrack", __func__); @@ -108,7 +121,7 @@ void BtifAvrcpAudioTrackPause(void *handle) int BtifAvrcpAudioTrackWriteData(void *handle, void *audioBuffer, int bufferlen) { BtifAvrcpAudioTrack *trackHolder = static_cast<BtifAvrcpAudioTrack*>(handle); - assert(trackHolder); + assert(trackHolder != NULL); assert(trackHolder->track != NULL); int retval = -1; #if (defined(DUMP_PCM_DATA) && (DUMP_PCM_DATA == TRUE)) diff --git a/system/btif/src/btif_media_task.c b/system/btif/src/btif_media_task.c index 610dc976a0..5e02803ff5 100644 --- a/system/btif/src/btif_media_task.c +++ b/system/btif/src/btif_media_task.c @@ -900,7 +900,8 @@ void btif_a2dp_on_init(void) { #ifdef USE_AUDIO_TRACK btif_media_cb.rx_audio_focus_state = BTIF_MEDIA_FOCUS_NOT_GRANTED; -#endif // USE_AUDIO_TRACK + btif_media_cb.audio_track = NULL; +#endif } @@ -959,7 +960,7 @@ void btif_a2dp_setup_codec(void) void btif_a2dp_on_idle(void) { - APPL_TRACE_EVENT("## ON A2DP IDLE ##"); + APPL_TRACE_EVENT("## ON A2DP IDLE ## peer_sep = %d", btif_media_cb.peer_sep); if (btif_media_cb.peer_sep == AVDT_TSEP_SNK) { /* Make sure media task is stopped */ @@ -2149,6 +2150,7 @@ static void btif_media_task_aa_handle_clear_track (void) #ifdef USE_AUDIO_TRACK BtifAvrcpAudioTrackStop(btif_media_cb.audio_track); BtifAvrcpAudioTrackDelete(btif_media_cb.audio_track); + btif_media_cb.audio_track = NULL; #endif } |