aboutsummaryrefslogtreecommitdiff
path: root/platform
diff options
context:
space:
mode:
authorPetri Savolainen <petri.savolainen@linaro.org>2018-10-17 14:43:43 +0300
committerMaxim Uvarov <maxim.uvarov@linaro.org>2018-10-18 17:26:39 +0300
commit0c8a2c0027e35184cbc6eeadc3a8aa8bd2e8605b (patch)
treecf2410867122929f97d89c27cbb4d70181b5f0ce /platform
parent2c41f8f678bbb96a63dedb4e4d948c5dd779f65d (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.c17
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: