Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6c23f380 authored by Mingming Yin's avatar Mingming Yin Committed by Gerrit - the friendly Code Review server
Browse files

hal: NULL pointer check before using audio_usecase

- Add check for NULL pointer before using audio_usecase

Change-Id: Iaedd7b1dfbcf727957f6b19a54199d29afa25703
parent 64cae407
Loading
Loading
Loading
Loading
+5 −5
Original line number Original line Diff line number Diff line
@@ -680,23 +680,23 @@ int select_devices(struct audio_device *adev, audio_usecase_t uc_id)
        if (adev->voice.in_call && adev->mode == AUDIO_MODE_IN_CALL) {
        if (adev->voice.in_call && adev->mode == AUDIO_MODE_IN_CALL) {
            vc_usecase = get_usecase_from_list(adev,
            vc_usecase = get_usecase_from_list(adev,
                                               get_voice_usecase_id_from_list(adev));
                                               get_voice_usecase_id_from_list(adev));
            if ((vc_usecase->devices & AUDIO_DEVICE_OUT_ALL_CODEC_BACKEND) ||
            if ((vc_usecase) && ((vc_usecase->devices & AUDIO_DEVICE_OUT_ALL_CODEC_BACKEND) ||
                (usecase->devices == AUDIO_DEVICE_IN_VOICE_CALL)) {
                (usecase->devices == AUDIO_DEVICE_IN_VOICE_CALL))) {
                in_snd_device = vc_usecase->in_snd_device;
                in_snd_device = vc_usecase->in_snd_device;
                out_snd_device = vc_usecase->out_snd_device;
                out_snd_device = vc_usecase->out_snd_device;
            }
            }
        } else if (voice_extn_compress_voip_is_active(adev)) {
        } else if (voice_extn_compress_voip_is_active(adev)) {
            voip_usecase = get_usecase_from_list(adev, USECASE_COMPRESS_VOIP_CALL);
            voip_usecase = get_usecase_from_list(adev, USECASE_COMPRESS_VOIP_CALL);
            if ((voip_usecase->devices & AUDIO_DEVICE_OUT_ALL_CODEC_BACKEND) &&
            if ((voip_usecase) && ((voip_usecase->devices & AUDIO_DEVICE_OUT_ALL_CODEC_BACKEND) &&
                (usecase->devices & AUDIO_DEVICE_OUT_ALL_CODEC_BACKEND) &&
                (usecase->devices & AUDIO_DEVICE_OUT_ALL_CODEC_BACKEND) &&
                 (voip_usecase->stream.out != adev->primary_output)) {
                 (voip_usecase->stream.out != adev->primary_output))) {
                    in_snd_device = voip_usecase->in_snd_device;
                    in_snd_device = voip_usecase->in_snd_device;
                    out_snd_device = voip_usecase->out_snd_device;
                    out_snd_device = voip_usecase->out_snd_device;
            }
            }
        } else if (audio_extn_hfp_is_active(adev)) {
        } else if (audio_extn_hfp_is_active(adev)) {
            hfp_ucid = audio_extn_hfp_get_usecase();
            hfp_ucid = audio_extn_hfp_get_usecase();
            hfp_usecase = get_usecase_from_list(adev, hfp_ucid);
            hfp_usecase = get_usecase_from_list(adev, hfp_ucid);
            if (hfp_usecase->devices & AUDIO_DEVICE_OUT_ALL_CODEC_BACKEND) {
            if ((hfp_usecase) && (hfp_usecase->devices & AUDIO_DEVICE_OUT_ALL_CODEC_BACKEND)) {
                   in_snd_device = hfp_usecase->in_snd_device;
                   in_snd_device = hfp_usecase->in_snd_device;
                   out_snd_device = hfp_usecase->out_snd_device;
                   out_snd_device = hfp_usecase->out_snd_device;
            }
            }
+8 −2
Original line number Original line Diff line number Diff line
@@ -574,8 +574,14 @@ int voice_extn_compress_voip_start_output_stream(struct stream_out *out)
    ret = voip_start_call(adev, &out->config);
    ret = voip_start_call(adev, &out->config);
    out->pcm = voip_data.pcm_rx;
    out->pcm = voip_data.pcm_rx;
    uc_info = get_usecase_from_list(adev, USECASE_COMPRESS_VOIP_CALL);
    uc_info = get_usecase_from_list(adev, USECASE_COMPRESS_VOIP_CALL);
    if (uc_info) {
        uc_info->stream.out = out;
        uc_info->stream.out = out;
        uc_info->devices = out->devices;
        uc_info->devices = out->devices;
    } else {
        ret = -EINVAL;
        ALOGE("%s: exit(%d): failed to get use case info", __func__, ret);
        goto error;
    }


error:
error:
    ALOGV("%s: exit: status(%d)", __func__, ret);
    ALOGV("%s: exit: status(%d)", __func__, ret);