diff options
author | Petri Savolainen <petri.savolainen@linaro.org> | 2018-10-17 14:43:43 +0300 |
---|---|---|
committer | Maxim Uvarov <maxim.uvarov@linaro.org> | 2018-11-06 19:00:44 +0300 |
commit | ebff1c15f1a0ccad57d26720ba7357a6b194d7fe (patch) | |
tree | 5b46884fdfcd874f6bdff2bbc886a9ada9ac6606 | |
parent | 07b1c56979139118d47d15ff969365c08814dfd5 (diff) |
linux-gen: pool: add packet param checks
Do also checks against maximum number of packets and
max packet headroom size.
Signed-off-by: Petri Savolainen <petri.savolainen@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
-rw-r--r-- | platform/linux-generic/odp_pool.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/platform/linux-generic/odp_pool.c b/platform/linux-generic/odp_pool.c index 544348189..db7a8da3f 100644 --- a/platform/linux-generic/odp_pool.c +++ b/platform/linux-generic/odp_pool.c @@ -572,6 +572,17 @@ static int check_params(odp_pool_param_t *params) break; case ODP_POOL_PACKET: + if (params->pkt.num > capa.pkt.max_num) { + ODP_ERR("pkt.num too large %u\n", params->pkt.num); + return -1; + } + + if (params->pkt.max_num > capa.pkt.max_num) { + ODP_ERR("pkt.max_num too large %u\n", + params->pkt.max_num); + return -1; + } + if (params->pkt.len > capa.pkt.max_len) { ODP_ERR("pkt.len too large %u\n", params->pkt.len); return -1; @@ -595,6 +606,12 @@ static int check_params(odp_pool_param_t *params) return -1; } + if (params->pkt.headroom > capa.pkt.max_headroom) { + ODP_ERR("pkt.headroom too large %u\n", + params->pkt.headroom); + return -1; + } + break; case ODP_POOL_TIMEOUT: |