mirror of
https://github.com/torvalds/linux.git
synced 2026-09-23 22:14:03 +02:00
ASoC: cs-amp-lib: Prevent NULL pointer if efi variable is zero length
In cs_amp_alloc_get_efi_variable() the first call to
cs_amp_get_efi_variable() might return EFI_SUCCESS if the variable
exists with zero length. Trap this and return -ENOENT to prevent
returning an unexpected NULL pointer.
The first cs_amp_get_efi_variable() call was assumed to return
EFI_BUFFER_TOO_SMALL if the variable existed, but if instead it
returned EFI_SUCCESS this would be converted to 0 by
cs_amp_convert_efi_status() and then be returned as a NULL pointer.
Fixes: 00fd40bc7a ("ASoC: cs-amp-lib: Support Dell SSIDExV2 UEFI variable")
Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
Link: https://patch.msgid.link/20260914122611.2783563-1-rf@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
03a5699a0a
commit
3482062c78
|
|
@ -317,6 +317,8 @@ static void *cs_amp_alloc_get_efi_variable(efi_char16_t *name,
|
|||
unsigned long size = 0;
|
||||
|
||||
status = cs_amp_get_efi_variable(name, guid, NULL, &size, NULL);
|
||||
if (status == EFI_SUCCESS)
|
||||
return ERR_PTR(-ENOENT);
|
||||
if (status != EFI_BUFFER_TOO_SMALL)
|
||||
return ERR_PTR(cs_amp_convert_efi_status(status));
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user