aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Laurent <elaurent@google.com>2011-05-02 10:15:21 -0700
committerJaikumar Ganesh <jaikumar@google.com>2011-05-25 11:51:57 -0700
commiteb2093d614aaacd3c61217ca1f15e32576f792ca (patch)
tree15db67e5d9ce35d4aacda4f2fbb2b1ffd49cc16e
parentbe1ed76e85c96adae9a75f2d43abc16ad4dbde26 (diff)
downloadbluez-eb2093d614aaacd3c61217ca1f15e32576f792ca.tar.gz
Fix issue 4368520: crash in bluez audio at boot
Added missing initialization of output stream pointer in device struct and test on valid output stream in set_parameters() Change-Id: I162c410968dcbd6ed89f939c42bd48dbfe390a71
-rw-r--r--audio/android_audio_hw.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/audio/android_audio_hw.c b/audio/android_audio_hw.c
index 90bb72e4..63c7bb93 100644
--- a/audio/android_audio_hw.c
+++ b/audio/android_audio_hw.c
@@ -546,13 +546,15 @@ static int adev_set_parameters(struct audio_hw_device *dev, const char *kvpairs)
sizeof(value));
if (ret >= 0) {
adev->bt_enabled = !strcmp(value, "true");
- _out_bt_enable(adev->output, adev->bt_enabled);
+ if (adev->output)
+ _out_bt_enable(adev->output, adev->bt_enabled);
}
ret = str_parms_get_str(parms, A2DP_SUSPENDED_PARM, value, sizeof(value));
if (ret >= 0) {
adev->suspended = !strcmp(value, "true");
- _out_a2dp_suspend(adev->output, adev->suspended);
+ if (adev->output)
+ _out_a2dp_suspend(adev->output, adev->suspended);
}
pthread_mutex_unlock(&adev->lock);
@@ -688,7 +690,9 @@ static int adev_open(const hw_module_t* module, const char* name,
return -ENOMEM;
adev->bt_enabled = true;
+ adev->suspended = false;
pthread_mutex_init(&adev->lock, NULL);
+ adev->output = NULL;
adev->device.common.tag = HARDWARE_DEVICE_TAG;
adev->device.common.version = 0;