af_packet: fix memory allocation checks
authorDaniel Mrzyglod <danielx.t.mrzyglod@intel.com>
Thu, 18 Dec 2014 09:45:05 +0000 (09:45 +0000)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Thu, 18 Dec 2014 21:52:39 +0000 (22:52 +0100)
In rte_eth_af_packet.c we are we are missing NULL pointer
checks after calls to allocate memory for queues.
Add checking NULL pointer and error handling.

Signed-off-by: Daniel Mrzyglod <danielx.t.mrzyglod@intel.com>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
lib/librte_pmd_af_packet/rte_eth_af_packet.c

index ad7242c..236749b 100644 (file)
@@ -603,6 +603,8 @@ rte_pmd_init_internals(const char *name,
                rdsize = req->tp_frame_nr * sizeof(*(rx_queue->rd));
 
                rx_queue->rd = rte_zmalloc_socket(name, rdsize, 0, numa_node);
+               if (rx_queue->rd == NULL)
+                       goto error;
                for (i = 0; i < req->tp_frame_nr; ++i) {
                        rx_queue->rd[i].iov_base = rx_queue->map + (i * framesize);
                        rx_queue->rd[i].iov_len = req->tp_frame_size;
@@ -615,6 +617,8 @@ rte_pmd_init_internals(const char *name,
                tx_queue->map = rx_queue->map + req->tp_block_size * req->tp_block_nr;
 
                tx_queue->rd = rte_zmalloc_socket(name, rdsize, 0, numa_node);
+               if (tx_queue->rd == NULL)
+                       goto error;
                for (i = 0; i < req->tp_frame_nr; ++i) {
                        tx_queue->rd[i].iov_base = tx_queue->map + (i * framesize);
                        tx_queue->rd[i].iov_len = req->tp_frame_size;