From patchwork Fri Sep 1 16:52:51 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Phil Sutter X-Patchwork-Id: 808817 X-Patchwork-Delegate: shemminger@vyatta.com Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3xkQKn6H7fz9t2x for ; Sat, 2 Sep 2017 02:53:17 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752131AbdIAQxP (ORCPT ); Fri, 1 Sep 2017 12:53:15 -0400 Received: from orbyte.nwl.cc ([151.80.46.58]:41345 "EHLO mail.nwl.cc" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751863AbdIAQxP (ORCPT ); Fri, 1 Sep 2017 12:53:15 -0400 Received: from mail.nwl.cc (orbyte.nwl.cc [127.0.0.1]) by mail.nwl.cc (Postfix) with ESMTP id 40F7D65A5E; Fri, 1 Sep 2017 18:53:14 +0200 (CEST) Received: from xsao (localhost [IPv6:::1]) by mail.nwl.cc (Postfix) with ESMTP id 2237B644CF; Fri, 1 Sep 2017 18:53:14 +0200 (CEST) From: Phil Sutter To: Stephen Hemminger Cc: netdev@vger.kernel.org Subject: [iproute PATCH 1/6] utils: Implement strlcpy() and strlcat() Date: Fri, 1 Sep 2017 18:52:51 +0200 Message-Id: <20170901165256.21459-2-phil@nwl.cc> X-Mailer: git-send-email 2.13.1 In-Reply-To: <20170901165256.21459-1-phil@nwl.cc> References: <20170901165256.21459-1-phil@nwl.cc> X-Virus-Scanned: ClamAV using ClamSMTP Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org By making use of strncpy(), both implementations are really simple so there is no need to add libbsd as additional dependency. Signed-off-by: Phil Sutter --- include/utils.h | 3 +++ lib/utils.c | 19 +++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/include/utils.h b/include/utils.h index f665d9001806f..9c2f9fc257fba 100644 --- a/include/utils.h +++ b/include/utils.h @@ -252,4 +252,7 @@ int make_path(const char *path, mode_t mode); char *find_cgroup2_mount(void); int get_command_name(const char *pid, char *comm, size_t len); +size_t strlcpy(char *dst, const char *src, size_t size); +size_t strlcat(char *dst, const char *src, size_t size); + #endif /* __UTILS_H__ */ diff --git a/lib/utils.c b/lib/utils.c index 002063075fd61..c95780e725252 100644 --- a/lib/utils.c +++ b/lib/utils.c @@ -1238,3 +1238,22 @@ int get_real_family(int rtm_type, int rtm_family) return rtm_family; } + +size_t strlcpy(char *dst, const char *src, size_t size) +{ + if (size) { + strncpy(dst, src, size - 1); + dst[size - 1] = '\0'; + } + return strlen(src); +} + +size_t strlcat(char *dst, const char *src, size_t size) +{ + size_t dlen = strlen(dst); + + if (dlen > size) + return dlen + strlen(src); + + return dlen + strlcpy(dst + dlen, src, size - dlen); +} From patchwork Fri Sep 1 16:52:52 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Phil Sutter X-Patchwork-Id: 808819 X-Patchwork-Delegate: shemminger@vyatta.com Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3xkQL23LCzz9t2x for ; Sat, 2 Sep 2017 02:53:30 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752182AbdIAQx2 (ORCPT ); Fri, 1 Sep 2017 12:53:28 -0400 Received: from orbyte.nwl.cc ([151.80.46.58]:47059 "EHLO mail.nwl.cc" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752148AbdIAQx1 (ORCPT ); Fri, 1 Sep 2017 12:53:27 -0400 Received: from mail.nwl.cc (orbyte.nwl.cc [127.0.0.1]) by mail.nwl.cc (Postfix) with ESMTP id BDF4D65A5E; Fri, 1 Sep 2017 18:53:26 +0200 (CEST) Received: from xsao (localhost [IPv6:::1]) by mail.nwl.cc (Postfix) with ESMTP id A3025644CF; Fri, 1 Sep 2017 18:53:26 +0200 (CEST) From: Phil Sutter To: Stephen Hemminger Cc: netdev@vger.kernel.org Subject: [iproute PATCH 2/6] Convert the obvious cases to strlcpy() Date: Fri, 1 Sep 2017 18:52:52 +0200 Message-Id: <20170901165256.21459-3-phil@nwl.cc> X-Mailer: git-send-email 2.13.1 In-Reply-To: <20170901165256.21459-1-phil@nwl.cc> References: <20170901165256.21459-1-phil@nwl.cc> X-Virus-Scanned: ClamAV using ClamSMTP Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org This converts the typical idiom of manually terminating the buffer after a call to strncpy(). Signed-off-by: Phil Sutter Acked-by: Daniel Borkmann --- ip/ipnetns.c | 3 +-- ip/iproute_lwtunnel.c | 3 +-- ip/ipvrf.c | 3 +-- lib/bpf.c | 3 +-- lib/fs.c | 3 +-- lib/inet_proto.c | 3 +-- misc/ss.c | 3 +-- tc/em_ipset.c | 3 +-- 8 files changed, 8 insertions(+), 16 deletions(-) diff --git a/ip/ipnetns.c b/ip/ipnetns.c index 9ee1fe6a51f9c..afb4978a5be7d 100644 --- a/ip/ipnetns.c +++ b/ip/ipnetns.c @@ -518,8 +518,7 @@ int netns_identify_pid(const char *pidstr, char *name, int len) if ((st.st_dev == netst.st_dev) && (st.st_ino == netst.st_ino)) { - strncpy(name, entry->d_name, len - 1); - name[len - 1] = '\0'; + strlcpy(name, entry->d_name, len); } } closedir(dir); diff --git a/ip/iproute_lwtunnel.c b/ip/iproute_lwtunnel.c index 1a3dc4d4c0ed9..4c2d3b07e3b5c 100644 --- a/ip/iproute_lwtunnel.c +++ b/ip/iproute_lwtunnel.c @@ -325,8 +325,7 @@ static int parse_encap_seg6(struct rtattr *rta, size_t len, int *argcp, invarg("\"segs\" provided before \"mode\"\n", *argv); - strncpy(segbuf, *argv, 1024); - segbuf[1023] = 0; + strlcpy(segbuf, *argv, 1024); } else if (strcmp(*argv, "hmac") == 0) { NEXT_ARG(); if (hmac_ok++) diff --git a/ip/ipvrf.c b/ip/ipvrf.c index e6fad32abd956..b74c501e0970c 100644 --- a/ip/ipvrf.c +++ b/ip/ipvrf.c @@ -336,8 +336,7 @@ static int vrf_path(char *vpath, size_t len) if (vrf) *vrf = '\0'; - strncpy(vpath, start, len - 1); - vpath[len - 1] = '\0'; + strlcpy(vpath, start, len); /* if vrf path is just / then return nothing */ if (!strcmp(vpath, "/")) diff --git a/lib/bpf.c b/lib/bpf.c index 0bd0a95eafe6c..c180934acc7dc 100644 --- a/lib/bpf.c +++ b/lib/bpf.c @@ -512,8 +512,7 @@ static const char *bpf_find_mntpt_single(unsigned long magic, char *mnt, ret = bpf_valid_mntpt(mntpt, magic); if (!ret) { - strncpy(mnt, mntpt, len - 1); - mnt[len - 1] = 0; + strlcpy(mnt, mntpt, len); return mnt; } diff --git a/lib/fs.c b/lib/fs.c index ebe05cd44e11b..86efd4ed2ed80 100644 --- a/lib/fs.c +++ b/lib/fs.c @@ -172,8 +172,7 @@ int get_command_name(const char *pid, char *comm, size_t len) if (nl) *nl = '\0'; - strncpy(comm, name, len - 1); - comm[len - 1] = '\0'; + strlcpy(comm, name, len); break; } diff --git a/lib/inet_proto.c b/lib/inet_proto.c index 53c029039b6d5..bdfd52fdafe5a 100644 --- a/lib/inet_proto.c +++ b/lib/inet_proto.c @@ -38,8 +38,7 @@ const char *inet_proto_n2a(int proto, char *buf, int len) free(ncache); icache = proto; ncache = strdup(pe->p_name); - strncpy(buf, pe->p_name, len - 1); - buf[len - 1] = '\0'; + strlcpy(buf, pe->p_name, len); return buf; } snprintf(buf, len, "ipproto-%d", proto); diff --git a/misc/ss.c b/misc/ss.c index 2c9e80e696595..dd8dfaa4e70db 100644 --- a/misc/ss.c +++ b/misc/ss.c @@ -425,8 +425,7 @@ static void user_ent_hash_build(void) user_ent_hash_build_init = 1; - strncpy(name, root, sizeof(name)-1); - name[sizeof(name)-1] = 0; + strlcpy(name, root, sizeof(name)); if (strlen(name) == 0 || name[strlen(name)-1] != '/') strcat(name, "/"); diff --git a/tc/em_ipset.c b/tc/em_ipset.c index b59756515d239..48b287f5ba3b2 100644 --- a/tc/em_ipset.c +++ b/tc/em_ipset.c @@ -145,8 +145,7 @@ get_set_byname(const char *setname, struct xt_set_info *info) int res; req.op = IP_SET_OP_GET_BYNAME; - strncpy(req.set.name, setname, IPSET_MAXNAMELEN); - req.set.name[IPSET_MAXNAMELEN - 1] = '\0'; + strlcpy(req.set.name, setname, IPSET_MAXNAMELEN); res = do_getsockopt(&req); if (res != 0) return -1; From patchwork Fri Sep 1 16:52:53 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Phil Sutter X-Patchwork-Id: 808822 X-Patchwork-Delegate: shemminger@vyatta.com Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3xkQLQ0ZCQz9t3F for ; Sat, 2 Sep 2017 02:53:50 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752271AbdIAQxs (ORCPT ); Fri, 1 Sep 2017 12:53:48 -0400 Received: from orbyte.nwl.cc ([151.80.46.58]:59865 "EHLO mail.nwl.cc" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752247AbdIAQxq (ORCPT ); Fri, 1 Sep 2017 12:53:46 -0400 Received: from mail.nwl.cc (orbyte.nwl.cc [127.0.0.1]) by mail.nwl.cc (Postfix) with ESMTP id 883A565A5E; Fri, 1 Sep 2017 18:53:45 +0200 (CEST) Received: from xsao (localhost [IPv6:::1]) by mail.nwl.cc (Postfix) with ESMTP id 6A4BF644CF; Fri, 1 Sep 2017 18:53:45 +0200 (CEST) From: Phil Sutter To: Stephen Hemminger Cc: netdev@vger.kernel.org Subject: [iproute PATCH 3/6] Convert harmful calls to strncpy() to strlcpy() Date: Fri, 1 Sep 2017 18:52:53 +0200 Message-Id: <20170901165256.21459-4-phil@nwl.cc> X-Mailer: git-send-email 2.13.1 In-Reply-To: <20170901165256.21459-1-phil@nwl.cc> References: <20170901165256.21459-1-phil@nwl.cc> X-Virus-Scanned: ClamAV using ClamSMTP Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org This patch converts spots where manual buffer termination was missing to strlcpy() since that does what is needed. Signed-off-by: Phil Sutter --- genl/ctrl.c | 2 +- ip/ipvrf.c | 2 +- ip/xfrm_state.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/genl/ctrl.c b/genl/ctrl.c index 6abd52582d0d3..448988eb90e2b 100644 --- a/genl/ctrl.c +++ b/genl/ctrl.c @@ -313,7 +313,7 @@ static int ctrl_list(int cmd, int argc, char **argv) if (matches(*argv, "name") == 0) { NEXT_ARG(); - strncpy(d, *argv, sizeof (d) - 1); + strlcpy(d, *argv, sizeof(d)); addattr_l(nlh, 128, CTRL_ATTR_FAMILY_NAME, d, strlen(d) + 1); } else if (matches(*argv, "id") == 0) { diff --git a/ip/ipvrf.c b/ip/ipvrf.c index b74c501e0970c..f9277e1e66bdf 100644 --- a/ip/ipvrf.c +++ b/ip/ipvrf.c @@ -74,7 +74,7 @@ static int vrf_identify(pid_t pid, char *name, size_t len) if (end) *end = '\0'; - strncpy(name, vrf, len - 1); + strlcpy(name, vrf, len); break; } } diff --git a/ip/xfrm_state.c b/ip/xfrm_state.c index e11c93bf1c3b5..4483fb8f71d2c 100644 --- a/ip/xfrm_state.c +++ b/ip/xfrm_state.c @@ -125,7 +125,7 @@ static int xfrm_algo_parse(struct xfrm_algo *alg, enum xfrm_attr_type_t type, fprintf(stderr, "warning: ALGO-NAME/ALGO-KEYMAT values will be sent to the kernel promiscuously! (verifying them isn't implemented yet)\n"); #endif - strncpy(alg->alg_name, name, sizeof(alg->alg_name)); + strlcpy(alg->alg_name, name, sizeof(alg->alg_name)); if (slen > 2 && strncmp(key, "0x", 2) == 0) { /* split two chars "0x" from the top */ From patchwork Fri Sep 1 16:52:54 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Phil Sutter X-Patchwork-Id: 808818 X-Patchwork-Delegate: shemminger@vyatta.com Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3xkQKw6pMCz9t2x for ; Sat, 2 Sep 2017 02:53:24 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752173AbdIAQxW (ORCPT ); Fri, 1 Sep 2017 12:53:22 -0400 Received: from orbyte.nwl.cc ([151.80.46.58]:52195 "EHLO mail.nwl.cc" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752148AbdIAQxV (ORCPT ); Fri, 1 Sep 2017 12:53:21 -0400 Received: from mail.nwl.cc (orbyte.nwl.cc [127.0.0.1]) by mail.nwl.cc (Postfix) with ESMTP id 806BB65A5E; Fri, 1 Sep 2017 18:53:20 +0200 (CEST) Received: from xsao (localhost [IPv6:::1]) by mail.nwl.cc (Postfix) with ESMTP id 64B0E644CF; Fri, 1 Sep 2017 18:53:20 +0200 (CEST) From: Phil Sutter To: Stephen Hemminger Cc: netdev@vger.kernel.org Subject: [iproute PATCH 4/6] ipxfrm: Replace STRBUF_CAT macro with strlcat() Date: Fri, 1 Sep 2017 18:52:54 +0200 Message-Id: <20170901165256.21459-5-phil@nwl.cc> X-Mailer: git-send-email 2.13.1 In-Reply-To: <20170901165256.21459-1-phil@nwl.cc> References: <20170901165256.21459-1-phil@nwl.cc> X-Virus-Scanned: ClamAV using ClamSMTP Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Signed-off-by: Phil Sutter --- ip/ipxfrm.c | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/ip/ipxfrm.c b/ip/ipxfrm.c index d5eb22e25476a..12c2f721571b6 100644 --- a/ip/ipxfrm.c +++ b/ip/ipxfrm.c @@ -40,17 +40,6 @@ #include "ip_common.h" #define STRBUF_SIZE (128) -#define STRBUF_CAT(buf, str) \ - do { \ - int rest = sizeof(buf) - 1 - strlen(buf); \ - if (rest > 0) { \ - int len = strlen(str); \ - if (len > rest) \ - len = rest; \ - strncat(buf, str, len); \ - buf[sizeof(buf) - 1] = '\0'; \ - } \ - } while (0); struct xfrm_filter filter; @@ -902,8 +891,8 @@ void xfrm_state_info_print(struct xfrm_usersa_info *xsinfo, prefix, title); if (prefix) - STRBUF_CAT(buf, prefix); - STRBUF_CAT(buf, "\t"); + strlcat(buf, prefix, sizeof(buf)); + strlcat(buf, "\t", sizeof(buf)); fputs(buf, fp); fprintf(fp, "replay-window %u ", xsinfo->replay_window); @@ -944,7 +933,7 @@ void xfrm_state_info_print(struct xfrm_usersa_info *xsinfo, char sbuf[STRBUF_SIZE]; memcpy(sbuf, buf, sizeof(sbuf)); - STRBUF_CAT(sbuf, "sel "); + strlcat(sbuf, "sel ", sizeof(sbuf)); xfrm_selector_print(&xsinfo->sel, xsinfo->family, fp, sbuf); } @@ -992,8 +981,8 @@ void xfrm_policy_info_print(struct xfrm_userpolicy_info *xpinfo, } if (prefix) - STRBUF_CAT(buf, prefix); - STRBUF_CAT(buf, "\t"); + strlcat(buf, prefix, sizeof(buf)); + strlcat(buf, "\t", sizeof(buf)); fputs(buf, fp); if (xpinfo->dir >= XFRM_POLICY_MAX) { From patchwork Fri Sep 1 16:52:55 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Phil Sutter X-Patchwork-Id: 808821 X-Patchwork-Delegate: shemminger@vyatta.com Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3xkQLH33kHz9t2x for ; Sat, 2 Sep 2017 02:53:43 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752223AbdIAQxl (ORCPT ); Fri, 1 Sep 2017 12:53:41 -0400 Received: from orbyte.nwl.cc ([151.80.46.58]:48805 "EHLO mail.nwl.cc" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752202AbdIAQxk (ORCPT ); Fri, 1 Sep 2017 12:53:40 -0400 Received: from mail.nwl.cc (orbyte.nwl.cc [127.0.0.1]) by mail.nwl.cc (Postfix) with ESMTP id 49C1765A5E; Fri, 1 Sep 2017 18:53:39 +0200 (CEST) Received: from xsao (localhost [IPv6:::1]) by mail.nwl.cc (Postfix) with ESMTP id 2B627644CF; Fri, 1 Sep 2017 18:53:39 +0200 (CEST) From: Phil Sutter To: Stephen Hemminger Cc: netdev@vger.kernel.org Subject: [iproute PATCH 5/6] tc_util: No need to terminate an snprintf'ed buffer Date: Fri, 1 Sep 2017 18:52:55 +0200 Message-Id: <20170901165256.21459-6-phil@nwl.cc> X-Mailer: git-send-email 2.13.1 In-Reply-To: <20170901165256.21459-1-phil@nwl.cc> References: <20170901165256.21459-1-phil@nwl.cc> X-Virus-Scanned: ClamAV using ClamSMTP Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org snprintf() won't leave the buffer unterminated, so manually terminating is not necessary here. Signed-off-by: Phil Sutter --- tc/tc_util.c | 1 - 1 file changed, 1 deletion(-) diff --git a/tc/tc_util.c b/tc/tc_util.c index 371046839ba9f..50d355046bdad 100644 --- a/tc/tc_util.c +++ b/tc/tc_util.c @@ -434,7 +434,6 @@ static const char *action_n2a(int action) return "trap"; default: snprintf(buf, 64, "%d", action); - buf[63] = '\0'; return buf; } } From patchwork Fri Sep 1 16:52:56 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Phil Sutter X-Patchwork-Id: 808820 X-Patchwork-Delegate: shemminger@vyatta.com Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3xkQL95J4nz9t2x for ; Sat, 2 Sep 2017 02:53:37 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752196AbdIAQxe (ORCPT ); Fri, 1 Sep 2017 12:53:34 -0400 Received: from orbyte.nwl.cc ([151.80.46.58]:36895 "EHLO mail.nwl.cc" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752148AbdIAQxe (ORCPT ); Fri, 1 Sep 2017 12:53:34 -0400 Received: from mail.nwl.cc (orbyte.nwl.cc [127.0.0.1]) by mail.nwl.cc (Postfix) with ESMTP id 094C165A5E; Fri, 1 Sep 2017 18:53:33 +0200 (CEST) Received: from xsao (localhost [IPv6:::1]) by mail.nwl.cc (Postfix) with ESMTP id DFC97644CF; Fri, 1 Sep 2017 18:53:32 +0200 (CEST) From: Phil Sutter To: Stephen Hemminger Cc: netdev@vger.kernel.org Subject: [iproute PATCH 6/6] lnstat_util: Make sure buffer is NUL-terminated Date: Fri, 1 Sep 2017 18:52:56 +0200 Message-Id: <20170901165256.21459-7-phil@nwl.cc> X-Mailer: git-send-email 2.13.1 In-Reply-To: <20170901165256.21459-1-phil@nwl.cc> References: <20170901165256.21459-1-phil@nwl.cc> X-Virus-Scanned: ClamAV using ClamSMTP Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Can't use strlcpy() here since lnstat is not linked against libutil. While being at it, fix coding style in that chunk as well. Signed-off-by: Phil Sutter --- misc/lnstat_util.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/misc/lnstat_util.c b/misc/lnstat_util.c index ec19238c24b94..c2dc42ec1ff12 100644 --- a/misc/lnstat_util.c +++ b/misc/lnstat_util.c @@ -150,7 +150,8 @@ static int lnstat_scan_compat_rtstat_fields(struct lnstat_file *lf) { char buf[FGETS_BUF_SIZE]; - strncpy(buf, RTSTAT_COMPAT_LINE, sizeof(buf)-1); + strncpy(buf, RTSTAT_COMPAT_LINE, sizeof(buf) - 1); + buf[sizeof(buf) - 1] = '\0'; return __lnstat_scan_fields(lf, buf); }