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

Commit 2aa4e2fd authored by Mingming Yin's avatar Mingming Yin Committed by android-build-merger
Browse files

hal: fix resource leak issues in platform.c

am: f219ba05

* commit 'f219ba05':
  hal: fix resource leak issues in platform.c
parents e3b8b37a f219ba05
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -1033,6 +1033,7 @@ static void audio_hwdep_send_cal(struct platform_data *plat_data)
    if (acdb_loader_get_calibration == NULL) {
        ALOGE("%s: ERROR. dlsym Error:%s acdb_loader_get_calibration", __func__,
           dlerror());
        close(fd);
        return;
    }
    if (send_codec_cal(acdb_loader_get_calibration, fd) < 0)
@@ -1186,6 +1187,7 @@ void *platform_init(struct audio_device *adev)
                ALOGE("%s: Failed to init audio route controls, aborting.",
                       __func__);
                free(my_data);
                mixer_close(adev->mixer);
                return NULL;
            }
            adev->snd_card = snd_card_num;
@@ -1195,6 +1197,7 @@ void *platform_init(struct audio_device *adev)
        }
        retry_num = 0;
        snd_card_num++;
        mixer_close(adev->mixer);
    }

    if (snd_card_num >= MAX_SND_CARD) {
+1 −0
Original line number Diff line number Diff line
@@ -240,6 +240,7 @@ void *platform_init(struct audio_device *adev)
    adev->audio_route = audio_route_init(MIXER_CARD, MIXER_XML_PATH);
    if (!adev->audio_route) {
        ALOGE("%s: Failed to init audio route controls, aborting.", __func__);
        mixer_close(adev->mixer);
        return NULL;
    }

+10 −0
Original line number Diff line number Diff line
@@ -934,6 +934,7 @@ static void audio_hwdep_send_cal(struct platform_data *plat_data)
    if (acdb_loader_get_calibration == NULL) {
        ALOGE("%s: ERROR. dlsym Error:%s acdb_loader_get_calibration", __func__,
           dlerror());
        close(fd);
        return;
    }
    if (send_codec_cal(acdb_loader_get_calibration, fd) < 0)
@@ -1007,6 +1008,12 @@ void *platform_init(struct audio_device *adev)
        }

        snd_card_name = mixer_get_name(adev->mixer);
        if (!snd_card_name) {
            ALOGE("failed to allocate memory for snd_card_name\n");
            free(my_data);
            mixer_close(adev->mixer);
            return NULL;
        }
        ALOGV("%s: snd_card_name: %s", __func__, snd_card_name);

        my_data->hw_info = hw_info_init(snd_card_name);
@@ -1027,6 +1034,8 @@ void *platform_init(struct audio_device *adev)
                ALOGE("%s: Failed to init audio route controls, aborting.",
                       __func__);
                free(my_data);
                free(snd_card_name);
                mixer_close(adev->mixer);
                return NULL;
            }
            adev->snd_card = snd_card_num;
@@ -1035,6 +1044,7 @@ void *platform_init(struct audio_device *adev)
        }
        retry_num = 0;
        snd_card_num++;
        mixer_close(adev->mixer);
    }

    if (snd_card_num >= MAX_SND_CARD) {