diff options
author | Matias Elo <matias.elo@nokia.com> | 2022-04-26 08:37:43 +0300 |
---|---|---|
committer | Matias Elo <matias.elo@nokia.com> | 2022-04-26 16:53:39 +0300 |
commit | 114b13e0145548c7b6264060c3c4ea7e7cfa40e0 (patch) | |
tree | 4a84eb9a962dafb174c8b273d8b2f465f55a93c6 /platform/linux-dpdk | |
parent | bedd54982b3f8bbe92a09c638c47d46239cdcd81 (diff) |
linux-dpdk: pool: improve odp_pool_create() parameter checking
Check that the number of objects in the pool is not zero in
odp_pool_param_t.
Signed-off-by: Matias Elo <matias.elo@nokia.com>
Reviewed-by: Janne Peltonen <janne.peltonen@nokia.com>
Diffstat (limited to 'platform/linux-dpdk')
-rw-r--r-- | platform/linux-dpdk/odp_pool.c | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/platform/linux-dpdk/odp_pool.c b/platform/linux-dpdk/odp_pool.c index dfe7c1737..3dd79f17b 100644 --- a/platform/linux-dpdk/odp_pool.c +++ b/platform/linux-dpdk/odp_pool.c @@ -400,6 +400,11 @@ static int check_params(const odp_pool_param_t *params) switch (params->type) { case ODP_POOL_BUFFER: + if (params->buf.num == 0) { + ODP_ERR("buf.num zero\n"); + return -1; + } + if (params->buf.num > capa.buf.max_num) { ODP_ERR("buf.num too large %u\n", params->buf.num); return -1; @@ -444,6 +449,11 @@ static int check_params(const odp_pool_param_t *params) return -1; } + if (params->pkt.num == 0) { + ODP_ERR("pkt.num zero\n"); + return -1; + } + if (params->pkt.num > capa.pkt.max_num) { ODP_ERR("pkt.num too large %u\n", params->pkt.num); return -1; @@ -455,11 +465,6 @@ static int check_params(const odp_pool_param_t *params) return -1; } - if (params->pkt.num > capa.pkt.max_num) { - ODP_ERR("pkt.num too large %u\n", params->pkt.num); - return -1; - } - if (params->pkt.seg_len > capa.pkt.max_seg_len) { ODP_ERR("pkt.seg_len too large %u\n", params->pkt.seg_len); @@ -492,6 +497,11 @@ static int check_params(const odp_pool_param_t *params) break; case ODP_POOL_TIMEOUT: + if (params->tmo.num == 0) { + ODP_ERR("tmo.num zero\n"); + return -1; + } + if (params->tmo.num > capa.tmo.max_num) { ODP_ERR("tmo.num too large %u\n", params->tmo.num); return -1; |