ALSA: x86: Fix memory leak in had_build_channel_allocation_map()
The previously allocated chmap has to be released before setting the new one. Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
5def90196b
commit
18353192b8
|
@ -444,11 +444,12 @@ static void had_build_channel_allocation_map(struct snd_intelhad *intelhaddata)
|
|||
u8 eld_high, eld_high_mask = 0xF0;
|
||||
u8 high_msb;
|
||||
|
||||
kfree(intelhaddata->chmap->chmap);
|
||||
intelhaddata->chmap->chmap = NULL;
|
||||
|
||||
chmap = kzalloc(sizeof(*chmap), GFP_KERNEL);
|
||||
if (!chmap) {
|
||||
intelhaddata->chmap->chmap = NULL;
|
||||
if (!chmap)
|
||||
return;
|
||||
}
|
||||
|
||||
dev_dbg(intelhaddata->dev, "eld speaker = %x\n",
|
||||
intelhaddata->eld[DRM_ELD_SPEAKER]);
|
||||
|
@ -493,10 +494,8 @@ static void had_build_channel_allocation_map(struct snd_intelhad *intelhaddata)
|
|||
break;
|
||||
}
|
||||
}
|
||||
if (i >= ARRAY_SIZE(channel_allocations)) {
|
||||
intelhaddata->chmap->chmap = NULL;
|
||||
if (i >= ARRAY_SIZE(channel_allocations))
|
||||
kfree(chmap);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
Loading…
Reference in New Issue