From: Tobias Brunner Date: Wed, 23 May 2018 17:06:02 +0000 (+0200) Subject: kernel-netlink: Use strncpy to copy interface name when configuring HW offload X-Git-Tag: 5.6.3rc1~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d837d0b3391b3e2c4d3382bee47f2b3882847b0c;p=thirdparty%2Fstrongswan.git kernel-netlink: Use strncpy to copy interface name when configuring HW offload --- diff --git a/src/libcharon/plugins/kernel_netlink/kernel_netlink_ipsec.c b/src/libcharon/plugins/kernel_netlink/kernel_netlink_ipsec.c index 69605d5f4f..4926c3de87 100644 --- a/src/libcharon/plugins/kernel_netlink/kernel_netlink_ipsec.c +++ b/src/libcharon/plugins/kernel_netlink/kernel_netlink_ipsec.c @@ -1354,7 +1354,8 @@ static void netlink_find_offload_feature(const char *ifname, int query_socket) .cmd = ETHTOOL_GSSET_INFO, .sset_mask = 1ULL << ETH_SS_FEATURES, ); - strcpy(ifr.ifr_name, ifname); + strncpy(ifr.ifr_name, ifname, IFNAMSIZ); + ifr.ifr_name[IFNAMSIZ-1] = '\0'; ifr.ifr_data = (void*)sset_info; err = ioctl(query_socket, SIOCETHTOOL, &ifr); @@ -1369,7 +1370,8 @@ static void netlink_find_offload_feature(const char *ifname, int query_socket) .cmd = ETHTOOL_GSTRINGS, .string_set = ETH_SS_FEATURES, ); - strcpy(ifr.ifr_name, ifname); + strncpy(ifr.ifr_name, ifname, IFNAMSIZ); + ifr.ifr_name[IFNAMSIZ-1] = '\0'; ifr.ifr_data = (void*)cmd; err = ioctl(query_socket, SIOCETHTOOL, &ifr); @@ -1433,7 +1435,8 @@ static bool netlink_detect_offload(const char *ifname) .cmd = ETHTOOL_GFEATURES, .size = netlink_hw_offload.total_blocks, ); - strcpy(ifr.ifr_name, ifname); + strncpy(ifr.ifr_name, ifname, IFNAMSIZ); + ifr.ifr_name[IFNAMSIZ-1] = '\0'; ifr.ifr_data = (void*)cmd; if (ioctl(query_socket, SIOCETHTOOL, &ifr))