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

Commit 7be71d22 authored by Mikhail Naganov's avatar Mikhail Naganov
Browse files

Zero initialize audio_port_config and containing structs

Add zero initialization for struct audio_port_config and
the structures that contain it: audio_port and audio_patch.

Left intact places where the struct is overwritten completely
or memset'd right after declaration.

Test: make
Change-Id: I889e55fd7c7b8810ef840090a9f0a85d55eaedb3
parent 85599801
Loading
Loading
Loading
Loading
+1 −2
Original line number Original line Diff line number Diff line
@@ -398,10 +398,9 @@ AudioPortConfig::AudioPortConfig()
status_t AudioPortConfig::applyAudioPortConfig(const struct audio_port_config *config,
status_t AudioPortConfig::applyAudioPortConfig(const struct audio_port_config *config,
                                               struct audio_port_config *backupConfig)
                                               struct audio_port_config *backupConfig)
{
{
    struct audio_port_config localBackupConfig;
    struct audio_port_config localBackupConfig = { .config_mask = config->config_mask };
    status_t status = NO_ERROR;
    status_t status = NO_ERROR;


    localBackupConfig.config_mask = config->config_mask;
    toAudioPortConfig(&localBackupConfig);
    toAudioPortConfig(&localBackupConfig);


    sp<AudioPort> audioport = getAudioPort();
    sp<AudioPort> audioport = getAudioPort();
+3 −3
Original line number Original line Diff line number Diff line
@@ -3185,10 +3185,10 @@ status_t AudioPolicyManager::setAudioPortConfig(const struct audio_port_config *
        return BAD_VALUE;
        return BAD_VALUE;
    }
    }


    struct audio_port_config backupConfig;
    struct audio_port_config backupConfig = {};
    status_t status = audioPortConfig->applyAudioPortConfig(config, &backupConfig);
    status_t status = audioPortConfig->applyAudioPortConfig(config, &backupConfig);
    if (status == NO_ERROR) {
    if (status == NO_ERROR) {
        struct audio_port_config newConfig;
        struct audio_port_config newConfig = {};
        audioPortConfig->toAudioPortConfig(&newConfig, config);
        audioPortConfig->toAudioPortConfig(&newConfig, config);
        status = mpClientInterface->setAudioPortConfig(&newConfig, 0);
        status = mpClientInterface->setAudioPortConfig(&newConfig, 0);
    }
    }
@@ -3336,7 +3336,7 @@ status_t AudioPolicyManager::startAudioSource(const struct audio_port_config *so
    sp<AudioSourceDescriptor> sourceDesc =
    sp<AudioSourceDescriptor> sourceDesc =
            new AudioSourceDescriptor(srcDeviceDesc, attributes, uid);
            new AudioSourceDescriptor(srcDeviceDesc, attributes, uid);


    struct audio_patch dummyPatch;
    struct audio_patch dummyPatch = {};
    sp<AudioPatch> patchDesc = new AudioPatch(&dummyPatch, uid);
    sp<AudioPatch> patchDesc = new AudioPatch(&dummyPatch, uid);
    sourceDesc->mPatchDesc = patchDesc;
    sourceDesc->mPatchDesc = patchDesc;


+1 −0
Original line number Original line Diff line number Diff line
@@ -1205,6 +1205,7 @@ void AudioPolicyService::AudioCommandThread::insertCommand_l(sp<AudioCommand>& c
                patch = ((CreateAudioPatchData *)command->mParam.get())->mPatch;
                patch = ((CreateAudioPatchData *)command->mParam.get())->mPatch;
            } else {
            } else {
                handle = ((ReleaseAudioPatchData *)command->mParam.get())->mHandle;
                handle = ((ReleaseAudioPatchData *)command->mParam.get())->mHandle;
                memset(&patch, 0, sizeof(patch));
            }
            }
            audio_patch_handle_t handle2;
            audio_patch_handle_t handle2;
            struct audio_patch patch2;
            struct audio_patch patch2;