[Skiboot] [PATCH 8/8] Introduce memory allocation return value check
Gavin Shan
gwshan at linux.vnet.ibm.com
Wed Jun 24 10:06:08 AEST 2015
On Tue, Jun 23, 2015 at 02:07:38PM +0530, Kamalesh Babulal wrote:
>In pci_std_swizzle_irq_map(), check if the memory allocation
>of interrupt-mask returns a valid pointer before using it.
>
>Fixes Coverity defect#97854.
>
>Signed-off-by: Kamalesh Babulal <kamalesh at linux.vnet.ibm.com>
>---
> core/pci.c | 8 +++++++-
> 1 file changed, 7 insertions(+), 1 deletion(-)
>
>diff --git a/core/pci.c b/core/pci.c
>index fe23d6c..ae71814 100644
>--- a/core/pci.c
>+++ b/core/pci.c
>@@ -1087,6 +1087,10 @@ void pci_std_swizzle_irq_map(struct dt_node *np,
> }
> map_size = esize * edevcount * 4 * sizeof(uint32_t);
> map = p = zalloc(map_size);
>+ if (!map) {
>+ prlog(PR_DEBUG, "Failed to allocate interrupt-map-mask !\n");
>+ goto fail;
>+ }
If the memory chunk can't be allocated, we needn't try to free it
with check.
>
> for (dev = 0; dev < edevcount; dev++) {
> for (irq = 0; irq < 4; irq++) {
>@@ -1111,7 +1115,9 @@ void pci_std_swizzle_irq_map(struct dt_node *np,
> }
>
> dt_add_property(np, "interrupt-map", map, map_size);
>- free(map);
>+fail:
>+ if (map)
>+ free(map);
The free() won't be called for ever.
> }
>
> static void pci_add_slot_properties(struct phb *phb, struct pci_slot_info *info,
Thanks,
Gavin
More information about the Skiboot
mailing list