net/ena: improve safety of string handling
authorJohn W. Linville <linville@tuxdriver.com>
Thu, 29 Sep 2016 17:39:33 +0000 (13:39 -0400)
committerBruce Richardson <bruce.richardson@intel.com>
Thu, 13 Oct 2016 13:30:59 +0000 (15:30 +0200)
Use sizeof dest rather than sizeof src for limiting copy length,
and replace strncpy with snprintf to ensure NULL termination.

Coverity issue: 127795
Fixes: 372c1af5ed8f ("net/ena: add dedicated memory area for extra device info")

Signed-off-by: John W. Linville <linville@tuxdriver.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
drivers/net/ena/ena_ethdev.c

index 6efd801..3ce26b9 100644 (file)
@@ -342,11 +342,13 @@ static void ena_config_host_info(struct ena_com_dev *ena_dev)
 
        host_info->os_type = ENA_ADMIN_OS_DPDK;
        host_info->kernel_ver = RTE_VERSION;
-       strncpy((char *)host_info->kernel_ver_str, rte_version(),
-               strlen(rte_version()));
+       snprintf((char *)host_info->kernel_ver_str,
+                sizeof(host_info->kernel_ver_str),
+                "%s", rte_version());
        host_info->os_dist = RTE_VERSION;
-       strncpy((char *)host_info->os_dist_str, rte_version(),
-               strlen(rte_version()));
+       snprintf((char *)host_info->os_dist_str,
+                sizeof(host_info->os_dist_str),
+                "%s", rte_version());
        host_info->driver_version =
                (DRV_MODULE_VER_MAJOR) |
                (DRV_MODULE_VER_MINOR << ENA_ADMIN_HOST_INFO_MINOR_SHIFT) |