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

Commit 5319430b authored by Preetam Singh Ranawat's avatar Preetam Singh Ranawat Committed by Gerrit - the friendly Code Review server
Browse files

hal : Fix data initialization and input validation errors

 Initialize uninitialized variables and add null check to
 avoid following errors

 119251, 119255, 119256, 119257, 119258
 144012, 913366, 119249, 119250, 58938

Change-Id: I09d35977c9c3abf5819d5c72506c8d157158e212
parent 4a137d20
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -421,6 +421,7 @@ static int spkr_calibrate(int t0_spk_1, int t0_spk_2)
    struct timespec ts;
    struct timespec ts;
    bool acquire_device = false;
    bool acquire_device = false;


    status.status = 0;
    if (!adev) {
    if (!adev) {
        ALOGE("%s: Invalid params", __func__);
        ALOGE("%s: Invalid params", __func__);
        return -EINVAL;
        return -EINVAL;
+15 −11
Original line number Original line Diff line number Diff line
@@ -1311,14 +1311,14 @@ static void set_platform_defaults()


            if(property_get_bool("use.qti.sw.alac.decoder", false)) {
            if(property_get_bool("use.qti.sw.alac.decoder", false)) {
                ALOGD("Alac software decoder is available...removing alac from DSP decoder list");
                ALOGD("Alac software decoder is available...removing alac from DSP decoder list");
                strncpy(dsp_only_decoders_mime[count],"none",5);
                strlcpy(dsp_only_decoders_mime[count],"none",5);
            }
            }
        } else if (!strncmp(MEDIA_MIMETYPE_AUDIO_APE, dsp_only_decoders_mime[count],
        } else if (!strncmp(MEDIA_MIMETYPE_AUDIO_APE, dsp_only_decoders_mime[count],
             strlen(dsp_only_decoders_mime[count]))) {
             strlen(dsp_only_decoders_mime[count]))) {


            if(property_get_bool("use.qti.sw.ape.decoder", false)) {
            if(property_get_bool("use.qti.sw.ape.decoder", false)) {
                ALOGD("APE software decoder is available...removing ape from DSP decoder list");
                ALOGD("APE software decoder is available...removing ape from DSP decoder list");
                strncpy(dsp_only_decoders_mime[count],"none",5);
                strlcpy(dsp_only_decoders_mime[count],"none",5);
           }
           }
        }
        }
    }
    }
@@ -1445,7 +1445,7 @@ static void send_codec_cal(acdb_loader_get_calibration_t acdb_loader_get_calibra
                              sizeof(struct param_data), &calib);
                              sizeof(struct param_data), &calib);
        if (ret < 0) {
        if (ret < 0) {
            ALOGE("%s get_calibration failed type=%s calib.size=%d\n"
            ALOGE("%s get_calibration failed type=%s calib.size=%d\n"
                , __func__, cal_name_info[type], codec_buffer.size);
                , __func__, cal_name_info[type], calib.buff_size);
            free(calib.buff);
            free(calib.buff);
            continue;
            continue;
        }
        }
@@ -1619,13 +1619,14 @@ static bool check_and_get_wsa_info(char *snd_card_name, int *wsaCount,
        /* update wsa combo supported flag based on sound card name */
        /* update wsa combo supported flag based on sound card name */
        /* wsa combo flag needs to be set to true only for hardware
        /* wsa combo flag needs to be set to true only for hardware
           combinations which has support for both wsa and non-wsa speaker */
           combinations which has support for both wsa and non-wsa speaker */
        if (snd_card_name && ((!strncmp(snd_card_name, "msm8953-snd-card-mtp",
        *is_wsa_combo_supported = false;
                sizeof("msm8953-snd-card-mtp"))) ||
        if(snd_card_name) {
            if ((!strncmp(snd_card_name, "msm8953-snd-card-mtp",
                    sizeof("msm8953-snd-card-mtp")) ||
                (!strncmp(snd_card_name, "msm8952-skum-snd-card",
                (!strncmp(snd_card_name, "msm8952-skum-snd-card",
                    sizeof("msm8952-skum-snd-card"))))) {
                    sizeof("msm8952-skum-snd-card"))))) {
                *is_wsa_combo_supported = true;
                *is_wsa_combo_supported = true;
        } else {
            }
            *is_wsa_combo_supported = false;
        }
        }
    }
    }
    closedir(tdir);
    closedir(tdir);
@@ -2306,11 +2307,14 @@ void native_audio_get_params(struct str_parms *query,
int native_audio_set_params(struct platform_data *platform,
int native_audio_set_params(struct platform_data *platform,
                            struct str_parms *parms, char *value, int len)
                            struct str_parms *parms, char *value, int len)
{
{
    int ret = 0;
    int ret = -1;
    struct audio_usecase *usecase;
    struct audio_usecase *usecase;
    struct listnode *node;
    struct listnode *node;
    int mode = NATIVE_AUDIO_MODE_INVALID;
    int mode = NATIVE_AUDIO_MODE_INVALID;


    if (!value)
        return ret;

    ret = str_parms_get_str(parms, AUDIO_PARAMETER_KEY_NATIVE_AUDIO_MODE,
    ret = str_parms_get_str(parms, AUDIO_PARAMETER_KEY_NATIVE_AUDIO_MODE,
                             value, len);
                             value, len);
    if (ret >= 0) {
    if (ret >= 0) {
+2 −2
Original line number Original line Diff line number Diff line
/*
/*
 * Copyright (c) 2013-2015, The Linux Foundation. All rights reserved.
 * Copyright (c) 2013-2016, The Linux Foundation. All rights reserved.
 * Not a Contribution.
 * Not a Contribution.
 *
 *
 * Copyright (C) 2013 The Android Open Source Project
 * Copyright (C) 2013 The Android Open Source Project
@@ -287,7 +287,7 @@ exit:
__attribute__ ((visibility ("default")))
__attribute__ ((visibility ("default")))
int offload_effects_bundle_hal_stop_output(audio_io_handle_t output, int pcm_id)
int offload_effects_bundle_hal_stop_output(audio_io_handle_t output, int pcm_id)
{
{
    int ret;
    int ret = -1;
    struct listnode *node;
    struct listnode *node;
    struct listnode *fx_node;
    struct listnode *fx_node;
    output_context_t *out_ctxt;
    output_context_t *out_ctxt;