[dpdk-dev] af_packet: fix memory allocation check
Commit Message
In rte_eth_af_packet.c we are we are missing NULL pointer
checks after calls to alocate memory for queues. Add checking NULL
pointer and error handling.
Signed-off-by: Daniel Mrzyglod <danielx.t.mrzyglod@intel.com>
---
lib/librte_pmd_af_packet/rte_eth_af_packet.c | 4 ++++
1 file changed, 4 insertions(+)
Comments
On Thu, Dec 18, 2014 at 09:45:05AM +0000, Daniel Mrzyglod wrote:
> In rte_eth_af_packet.c we are we are missing NULL pointer
> checks after calls to alocate memory for queues. Add checking NULL
> pointer and error handling.
>
> Signed-off-by: Daniel Mrzyglod <danielx.t.mrzyglod@intel.com>
> ---
> lib/librte_pmd_af_packet/rte_eth_af_packet.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/lib/librte_pmd_af_packet/rte_eth_af_packet.c b/lib/librte_pmd_af_packet/rte_eth_af_packet.c
> index ad7242c..236749b 100644
> --- a/lib/librte_pmd_af_packet/rte_eth_af_packet.c
> +++ b/lib/librte_pmd_af_packet/rte_eth_af_packet.c
> @@ -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;
> --
> 2.1.0
>
>
Acked-by: Neil Horman <nhorman@tuxdriver.com>
> > In rte_eth_af_packet.c we are we are missing NULL pointer
> > checks after calls to alocate 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>
Applied
Thanks
@@ -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;