X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=lib%2Flibrte_mbuf%2Frte_mbuf_pool_ops.c;h=f0e87a1412ce782c59a8b525540e42a1042acca2;hb=a8cdfc69c84b7740646368a46bbd3d4d6ddf97b0;hp=9aa15411fdaf7cb64edd1e8b199a1d09c9a73945;hpb=a3acc3144a76819479a679c632fa18b1c3cdeea1;p=dpdk.git diff --git a/lib/librte_mbuf/rte_mbuf_pool_ops.c b/lib/librte_mbuf/rte_mbuf_pool_ops.c index 9aa15411fd..f0e87a1412 100644 --- a/lib/librte_mbuf/rte_mbuf_pool_ops.c +++ b/lib/librte_mbuf/rte_mbuf_pool_ops.c @@ -3,6 +3,7 @@ */ #include +#include #include #include #include @@ -13,7 +14,10 @@ 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"); @@ -22,7 +26,7 @@ rte_mbuf_set_platform_mempool_ops(const char *ops_name) RTE_MEMPOOL_OPS_NAMESIZE, SOCKET_ID_ANY, 0); if (mz == NULL) return -rte_errno; - strncpy(mz->addr, ops_name, strlen(ops_name)); + strcpy(mz->addr, ops_name); return 0; } else if (strcmp(mz->addr, ops_name) == 0) { return 0; @@ -50,7 +54,10 @@ 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"); @@ -61,7 +68,7 @@ rte_mbuf_set_user_mempool_ops(const char *ops_name) return -rte_errno; } - strncpy(mz->addr, ops_name, strlen(ops_name)); + strcpy(mz->addr, ops_name); return 0; } @@ -73,7 +80,7 @@ rte_mbuf_user_mempool_ops(void) mz = rte_memzone_lookup("mbuf_user_pool_ops"); if (mz == NULL) - return rte_eal_mbuf_default_mempool_ops(); + return rte_eal_mbuf_user_pool_ops(); return mz->addr; }