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

Commit 003ee757 authored by Varun Balaraj's avatar Varun Balaraj Committed by Garmond Leung
Browse files

audio: hal: Adding safe checks to avoid crash

Added checks for parameter validation.

Change-Id: I9cf7f967b0c9be222b37ea2cca69161073460c83
parent 4cdd524c
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -1439,11 +1439,11 @@ int audio_extn_set_device_cfg_params(struct audio_device *adev,
    int ret = -EINVAL;
    struct stream_out out;
    uint32_t snd_device = 0, backend_idx = 0;
    struct audio_device_config_param *adev_device_cfg_ptr = adev->device_cfg_params;
    struct audio_device_config_param *adev_device_cfg_ptr;

    ALOGV("%s", __func__);

    if (!device_cfg_params || !adev) {
    if (!device_cfg_params || !adev || !adev->device_cfg_params) {
        ALOGE("%s:: Invalid Param", __func__);
        return ret;
    }
@@ -1454,6 +1454,7 @@ int audio_extn_set_device_cfg_params(struct audio_device *adev,
        return ret;
    }

    adev_device_cfg_ptr = adev->device_cfg_params;
    /* Create an out stream to get snd device from audio device */
    out.devices = device_cfg_params->device;
    out.sample_rate = device_cfg_params->sample_rate;
+5 −6
Original line number Diff line number Diff line
@@ -2256,8 +2256,8 @@ int audio_extn_utils_set_pan_scale_params(
{
    int ret = -EINVAL, i = 0, j = 0;

    if (mm_params == NULL && out != NULL) {
        ALOGE("%s:: Invalid mix matrix params", __func__);
    if (mm_params == NULL || out == NULL) {
        ALOGE("%s:: Invalid mix matrix or out param", __func__);
        goto exit;
    }

@@ -2305,7 +2305,7 @@ int audio_extn_utils_set_downmix_params(
    struct audio_usecase *usecase = NULL;

    if (mm_params == NULL || out == NULL) {
        ALOGE("%s:: Invalid mix matrix params", __func__);
        ALOGE("%s:: Invalid mix matrix or out param", __func__);
        goto exit;
    }

@@ -2316,11 +2316,10 @@ int audio_extn_utils_set_downmix_params(
        goto exit;

    usecase = get_usecase_from_list(out->dev, out->usecase);
    if (usecase == NULL) {
        ALOGE("%s: Invalid usecase", __func__);
    if (!usecase) {
        ALOGE("%s: Get usecase list failed!", __func__);
        goto exit;
    }

    out->downmix_params.num_output_channels = mm_params->num_output_channels;
    out->downmix_params.num_input_channels = mm_params->num_input_channels;