Bugzilla ID: 353 Cc: dev@dpdk.org Cc: stable@dpdk.org Cc: hemant.agrawal@nxp.com Signed-off-by: Muhammad Bilal <m.bilal@emumba.com> --- lib/librte_mbuf/rte_mbuf_pool_ops.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/librte_mbuf/rte_mbuf_pool_ops.c b/lib/librte_mbuf/rte_mbuf_pool_ops.c index 5722976fe..c3ddfc0bd 100644 --- a/lib/librte_mbuf/rte_mbuf_pool_ops.c +++ b/lib/librte_mbuf/rte_mbuf_pool_ops.c @@ -13,7 +13,8 @@ int rte_mbuf_set_platform_mempool_ops(const char *ops_name) { const struct rte_memzone *mz; - + if (strlen(ops_name) == 0) + return -1; if (strlen(ops_name) >= RTE_MEMPOOL_OPS_NAMESIZE) return -ENAMETOOLONG; @@ -50,7 +51,8 @@ int rte_mbuf_set_user_mempool_ops(const char *ops_name) { const struct rte_memzone *mz; - + if (strlen(ops_name) == 0) + return -1; if (strlen(ops_name) >= RTE_MEMPOOL_OPS_NAMESIZE) return -ENAMETOOLONG; -- 2.17.1
On Mon, 6 Apr 2020 16:30:20 +0500
Muhammad Bilal <m.bilal@emumba.com> wrote:
> Bugzilla ID: 353
> Cc: dev@dpdk.org
> Cc: stable@dpdk.org
> Cc: hemant.agrawal@nxp.com
> Signed-off-by: Muhammad Bilal <m.bilal@emumba.com>
> ---
> lib/librte_mbuf/rte_mbuf_pool_ops.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/lib/librte_mbuf/rte_mbuf_pool_ops.c b/lib/librte_mbuf/rte_mbuf_pool_ops.c
> index 5722976fe..c3ddfc0bd 100644
> --- a/lib/librte_mbuf/rte_mbuf_pool_ops.c
> +++ b/lib/librte_mbuf/rte_mbuf_pool_ops.c
> @@ -13,7 +13,8 @@ int
> rte_mbuf_set_platform_mempool_ops(const char *ops_name)
> {
> const struct rte_memzone *mz;
> -
> + if (strlen(ops_name) == 0)
> + return -1;
> if (strlen(ops_name) >= RTE_MEMPOOL_OPS_NAMESIZE)
> return -ENAMETOOLONG;
>
> @@ -50,7 +51,8 @@ int
> rte_mbuf_set_user_mempool_ops(const char *ops_name)
> {
> const struct rte_memzone *mz;
> -
> + if (strlen(ops_name) == 0)
> + return -1;
> if (strlen(ops_name) >= RTE_MEMPOOL_OPS_NAMESIZE)
> return -ENAMETOOLONG;
>
If you want to do it simpler and safer use strnlen.
Also, don't mix -1 wit -errno returns.
size_t len = strnlen(ops_name, RTE_MEMPOOL_OPS_NAMESIZE);
if (len == 0)
return -EINVAL;
if (len == RTE_MEMPOOL_OPS_NAMESIZE)
return -ENAMETOOLONG;
Bugzilla ID: 353 Cc: dev@dpdk.org Cc: stable@dpdk.org Cc: hemant.agrawal@nxp.com Signed-off-by: Muhammad Bilal <m.bilal@emumba.com> --- lib/librte_mbuf/rte_mbuf_pool_ops.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/librte_mbuf/rte_mbuf_pool_ops.c b/lib/librte_mbuf/rte_mbuf_pool_ops.c index 5722976fe..00186aa15 100644 --- a/lib/librte_mbuf/rte_mbuf_pool_ops.c +++ b/lib/librte_mbuf/rte_mbuf_pool_ops.c @@ -13,8 +13,10 @@ int rte_mbuf_set_platform_mempool_ops(const char *ops_name) { const struct rte_memzone *mz; - - if (strlen(ops_name) >= RTE_MEMPOOL_OPS_NAMESIZE) + size_t len = strnlen(ops_name, RTE_MEMPOOL_OPS_NAMESIZE); + if (len == 0) + return -EINVAL; + if (len == RTE_MEMPOOL_OPS_NAMESIZE) return -ENAMETOOLONG; mz = rte_memzone_lookup("mbuf_platform_pool_ops"); @@ -50,8 +52,10 @@ int rte_mbuf_set_user_mempool_ops(const char *ops_name) { const struct rte_memzone *mz; - - if (strlen(ops_name) >= RTE_MEMPOOL_OPS_NAMESIZE) + size_t len = strnlen(ops_name, RTE_MEMPOOL_OPS_NAMESIZE); + if (len == 0) + return -EINVAL; + if (len == RTE_MEMPOOL_OPS_NAMESIZE) return -ENAMETOOLONG; mz = rte_memzone_lookup("mbuf_user_pool_ops"); -- 2.17.1
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
07/04/2020 09:56, Muhammad Bilal: > Bugzilla ID: 353 > Cc: dev@dpdk.org > Cc: stable@dpdk.org > Cc: hemant.agrawal@nxp.com > Signed-off-by: Muhammad Bilal <m.bilal@emumba.com> Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com> No need to Cc stable in my opinion, as there is no bug fixed. Changing the name to: mbuf: prevent setting mempool ops name empty Applied with below minor change, thanks The blank line below should remain: > const struct rte_memzone *mz; > - > - if (strlen(ops_name) >= RTE_MEMPOOL_OPS_NAMESIZE) > + size_t len = strnlen(ops_name, RTE_MEMPOOL_OPS_NAMESIZE); > + if (len == 0) > + return -EINVAL;