Re: [PATCH] atm: dereference of he_dev->rbps_virt in he_init_group()
From: Roel Kluin <hidden>
Date: 2009-08-29 18:53:36
Subsystem:
atm, the rest · Maintainers:
Chas Williams, Linus Torvalds
From: Roel Kluin <hidden>
Date: 2009-08-29 18:53:36
Subsystem:
atm, the rest · Maintainers:
Chas Williams, Linus Torvalds
he_dev->rbps_virt or he_dev->rbpl_virt allocation may fail. Signed-off-by: Roel Kluin <redacted> --- There was another in the same function.
diff --git a/drivers/atm/he.c b/drivers/atm/he.c
index 2de6406..8af1d3e 100644
--- a/drivers/atm/he.c
+++ b/drivers/atm/he.c@@ -795,6 +795,8 @@ he_init_group(struct he_dev *he_dev, int group) } memset(he_dev->rbps_base, 0, CONFIG_RBPS_SIZE * sizeof(struct he_rbp)); he_dev->rbps_virt = kmalloc(CONFIG_RBPS_SIZE * sizeof(struct he_virt), GFP_KERNEL); + if (he_dev->rbps_virt == NULL) + return -ENOMEM; for (i = 0; i < CONFIG_RBPS_SIZE; ++i) { dma_addr_t dma_handle;
@@ -838,6 +840,8 @@ he_init_group(struct he_dev *he_dev, int group) } memset(he_dev->rbpl_base, 0, CONFIG_RBPL_SIZE * sizeof(struct he_rbp)); he_dev->rbpl_virt = kmalloc(CONFIG_RBPL_SIZE * sizeof(struct he_virt), GFP_KERNEL); + if (he_dev->rbpl_virt == NULL) + return -ENOMEM; for (i = 0; i < CONFIG_RBPL_SIZE; ++i) { dma_addr_t dma_handle;