diff options
author | Petri Savolainen <petri.savolainen@linaro.org> | 2018-10-17 14:43:43 +0300 |
---|---|---|
committer | Maxim Uvarov <maxim.uvarov@linaro.org> | 2018-10-18 17:26:39 +0300 |
commit | 0c8a2c0027e35184cbc6eeadc3a8aa8bd2e8605b (patch) | |
tree | cf2410867122929f97d89c27cbb4d70181b5f0ce /platform | |
parent | 2c41f8f678bbb96a63dedb4e4d948c5dd779f65d (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>
Diffstat (limited to 'platform')
-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: |