putting null checks on ops_name

Message ID 20200406113020.8074-1-m.bilal@emumba.com (mailing list archive)
State Superseded, archived
Headers
Series putting null checks on ops_name |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/iol-intel-Performance success Performance Testing PASS
ci/Intel-compilation success Compilation OK
ci/iol-mellanox-Performance success Performance Testing PASS
ci/travis-robot success Travis build: passed
ci/iol-testing success Testing PASS

Commit Message

Muhammad Bilal April 6, 2020, 11:30 a.m. UTC
  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(-)
  

Comments

Stephen Hemminger April 6, 2020, 3:20 p.m. UTC | #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;
  

Patch

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;