mirror of
https://github.com/torvalds/linux.git
synced 2024-11-05 19:41:54 +00:00
pm80xx : Fix missing NULL pointer checks and memory leaks
Checking return value for the memory allocattion and freeing it while exiting the function Signed-off-by: Viswas G <Viswas.G@pmcs.com> Signed-off-by: Suresh Thiagarajan <Suresh.Thiagarajan@pmcs.com> Reviewed-by: Tomas Henzl <thenzl@redhat.com> Acked-by: Jack Wang <xjtuwjp@gmail.com> Signed-off-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
parent
f259d9bdd2
commit
b42939aa07
@ -395,6 +395,8 @@ static ssize_t pm8001_ctl_bios_version_show(struct device *cdev,
|
||||
payload.offset = 0;
|
||||
payload.length = 4096;
|
||||
payload.func_specific = kzalloc(4096, GFP_KERNEL);
|
||||
if (!payload.func_specific)
|
||||
return -ENOMEM;
|
||||
PM8001_CHIP_DISP->get_nvmd_req(pm8001_ha, &payload);
|
||||
wait_for_completion(&completion);
|
||||
virt_addr = pm8001_ha->memoryMap.region[NVMD].virt_ptr;
|
||||
@ -402,6 +404,7 @@ static ssize_t pm8001_ctl_bios_version_show(struct device *cdev,
|
||||
bios_index++)
|
||||
str += sprintf(str, "%c",
|
||||
*((u8 *)((u8 *)virt_addr+bios_index)));
|
||||
kfree(payload.func_specific);
|
||||
return str - buf;
|
||||
}
|
||||
static DEVICE_ATTR(bios_version, S_IRUGO, pm8001_ctl_bios_version_show, NULL);
|
||||
|
Loading…
Reference in New Issue
Block a user