net/ena: improve safety of string handling

Use sizeof dest rather than sizeof src for limiting copy length,
and replace strncpy with snprintf to ensure NULL termination.

Coverity issue: 127795
Fixes: 372c1af5ed ("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>
This commit is contained in:
John W. Linville 2016-09-29 13:39:33 -04:00 committed by Bruce Richardson
parent 8d6c8b9ade
commit 103bb1cc29

View 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) |