From patchwork Wed Jun 13 19:43:03 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aaron Conole X-Patchwork-Id: 929066 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=openvswitch.org (client-ip=140.211.169.12; helo=mail.linuxfoundation.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=redhat.com Received: from mail.linuxfoundation.org (mail.linuxfoundation.org [140.211.169.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 415ccj1VmRz9s01 for ; Thu, 14 Jun 2018 05:43:33 +1000 (AEST) Received: from mail.linux-foundation.org (localhost [127.0.0.1]) by mail.linuxfoundation.org (Postfix) with ESMTP id 65132ED4; Wed, 13 Jun 2018 19:43:10 +0000 (UTC) X-Original-To: dev@openvswitch.org Delivered-To: ovs-dev@mail.linuxfoundation.org Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id 200D2EC4 for ; Wed, 13 Jun 2018 19:43:08 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mx1.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 9BA92680 for ; Wed, 13 Jun 2018 19:43:07 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id B58678424E; Wed, 13 Jun 2018 19:43:06 +0000 (UTC) Received: from dhcp-25.97.bos.redhat.com (unknown [10.18.25.61]) by smtp.corp.redhat.com (Postfix) with ESMTP id 8AA5D1117646; Wed, 13 Jun 2018 19:43:05 +0000 (UTC) From: Aaron Conole To: dev@openvswitch.org Date: Wed, 13 Jun 2018 15:43:03 -0400 Message-Id: <20180613194304.31548-1-aconole@redhat.com> X-Scanned-By: MIMEDefang 2.78 on 10.11.54.3 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.2]); Wed, 13 Jun 2018 19:43:06 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.2]); Wed, 13 Jun 2018 19:43:06 +0000 (UTC) for IP:'10.11.54.3' DOMAIN:'int-mx03.intmail.prod.int.rdu2.redhat.com' HELO:'smtp.corp.redhat.com' FROM:'aconole@redhat.com' RCPT:'' X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org Cc: Flavio Leitner , Dennis Flynn , Ben Warren Subject: [ovs-dev] [PATCH 1/2] lldp: fix string warnings X-BeenThere: ovs-dev@openvswitch.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: ovs-dev-bounces@openvswitch.org Errors-To: ovs-dev-bounces@openvswitch.org lib/lldp/lldpd.c: In function : lib/lldp/lldpd.c:520:17: warning: output truncated before terminating nul copying as many bytes from a string as its length [-Wstringop-truncation] strncat(buffer, cfg->g_protocols[i].name, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ strlen(cfg->g_protocols[i].name)); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ lib/lldp/lldpd.c: In function : lib/lldp/lldpd.c:519:17: warning: specified bound 2 equals source length [-Wstringop-overflow=] strncat(buffer, ", ", 2); ^~~~~~~~~~~~~~~~~~~~~~~~ Closer inspection shows that buffer is only used to output protocol names when debug logging is enabled, so restructure the code a bit as well. Signed-off-by: Aaron Conole Reviewed-by: Yifeng Sun --- lib/lldp/lldpd.c | 40 +++++++++++++++++++--------------------- 1 file changed, 19 insertions(+), 21 deletions(-) diff --git a/lib/lldp/lldpd.c b/lib/lldp/lldpd.c index ff5e62846..e9f3b6355 100644 --- a/lib/lldp/lldpd.c +++ b/lib/lldp/lldpd.c @@ -40,6 +40,7 @@ #include #endif #include "compiler.h" +#include "openvswitch/dynamic-string.h" #include "openvswitch/list.h" #include "packets.h" #include "timeval.h" @@ -417,7 +418,6 @@ lldpd_hide_ports(struct lldpd *cfg, int mask) { struct lldpd_port *port; int protocols[LLDPD_MODE_MAX + 1]; - char buffer[256]; bool found = false; int i, j, k; unsigned int min; @@ -505,29 +505,27 @@ lldpd_hide_ports(struct lldpd *cfg, j++; } - buffer[0] = '\0'; - for (i = 0; cfg->g_protocols[i].mode != 0; i++) { - if (cfg->g_protocols[i].enabled && - protocols[cfg->g_protocols[i].mode]) { - if (strlen(buffer) + - strlen(cfg->g_protocols[i].name) + 3 > sizeof(buffer)) { - /* Unlikely, our buffer is too small */ - memcpy(buffer + sizeof(buffer) - 4, "...", 4); - break; - } - if (buffer[0]) { - strncat(buffer, ", ", 2); - strncat(buffer, cfg->g_protocols[i].name, - strlen(cfg->g_protocols[i].name)); + if (VLOG_IS_DBG_ENABLED()) { + struct ds buffer; + ds_init(&buffer); + for (i = 0; cfg->g_protocols[i].mode != 0; i++) { + if (cfg->g_protocols[i].enabled && + protocols[cfg->g_protocols[i].mode]) { + if (*ds_cstr(&buffer)) { + ds_put_cstr(&buffer, ", "); + } + ds_put_cstr(&buffer, cfg->g_protocols[i].name); } } + VLOG_DBG("%s: %s: %d visible neighbors (out of %d)", + hw->h_ifname, + (mask == SMART_OUTGOING) ? "out filter" : "in filter", + k, j); + VLOG_DBG("%s: protocols: %s", + hw->h_ifname, + *ds_cstr(&buffer) ? ds_cstr(&buffer) : "(none)"); + ds_destroy(&buffer); } - VLOG_DBG("%s: %s: %d visible neighbors (out of %d)", - hw->h_ifname, - (mask == SMART_OUTGOING) ? "out filter" : "in filter", - k, j); - VLOG_DBG("%s: protocols: %s", - hw->h_ifname, buffer[0] ? buffer : "(none)"); } /* Hide unwanted ports depending on smart mode set by the user */ From patchwork Wed Jun 13 19:43:04 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aaron Conole X-Patchwork-Id: 929065 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=openvswitch.org (client-ip=140.211.169.12; helo=mail.linuxfoundation.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=redhat.com Received: from mail.linuxfoundation.org (mail.linuxfoundation.org [140.211.169.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 415ccK1QnDz9s01 for ; Thu, 14 Jun 2018 05:43:12 +1000 (AEST) Received: from mail.linux-foundation.org (localhost [127.0.0.1]) by mail.linuxfoundation.org (Postfix) with ESMTP id 93991EC4; Wed, 13 Jun 2018 19:43:09 +0000 (UTC) X-Original-To: dev@openvswitch.org Delivered-To: ovs-dev@mail.linuxfoundation.org Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id 12C86EC3 for ; Wed, 13 Jun 2018 19:43:08 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mx1.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id AE65F681 for ; Wed, 13 Jun 2018 19:43:07 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id E262E81902A2; Wed, 13 Jun 2018 19:43:06 +0000 (UTC) Received: from dhcp-25.97.bos.redhat.com (unknown [10.18.25.61]) by smtp.corp.redhat.com (Postfix) with ESMTP id BC1321116700; Wed, 13 Jun 2018 19:43:06 +0000 (UTC) From: Aaron Conole To: dev@openvswitch.org Date: Wed, 13 Jun 2018 15:43:04 -0400 Message-Id: <20180613194304.31548-2-aconole@redhat.com> In-Reply-To: <20180613194304.31548-1-aconole@redhat.com> References: <20180613194304.31548-1-aconole@redhat.com> X-Scanned-By: MIMEDefang 2.78 on 10.11.54.3 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.8]); Wed, 13 Jun 2018 19:43:06 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.8]); Wed, 13 Jun 2018 19:43:06 +0000 (UTC) for IP:'10.11.54.3' DOMAIN:'int-mx03.intmail.prod.int.rdu2.redhat.com' HELO:'smtp.corp.redhat.com' FROM:'aconole@redhat.com' RCPT:'' X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org Cc: Flavio Leitner , Dennis Flynn , Ben Warren Subject: [ovs-dev] [PATCH 2/2] netdev-dpdk: fix snprintf call X-BeenThere: ovs-dev@openvswitch.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: ovs-dev-bounces@openvswitch.org Errors-To: ovs-dev-bounces@openvswitch.org lib/netdev-dpdk.c: In function : lib/netdev-dpdk.c:2865:49: warning: output may be truncated before the last format character [-Wformat-truncation=] snprintf(vhost_vring, 16, "vring_%d_size", i); ^ lib/netdev-dpdk.c:2865:9: note: output between 13 and 17 bytes into a destination of size 16 snprintf(vhost_vring, 16, "vring_%d_size", i); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Since vring_num is 16 bits, the largest value ever would only be 17 bytes, including the terminating nul. Stretch it to 18 bytes (as a precaution against a signed value, which again would never happen). Signed-off-by: Aaron Conole Reviewed-by: Yifeng Sun --- lib/netdev-dpdk.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c index 2e2f568b8..e75943bb2 100644 --- a/lib/netdev-dpdk.c +++ b/lib/netdev-dpdk.c @@ -2859,7 +2859,7 @@ netdev_dpdk_vhost_user_get_status(const struct netdev *netdev, for (int i = 0; i < vring_num; i++) { struct rte_vhost_vring vring; - char vhost_vring[16]; + char vhost_vring[18]; rte_vhost_get_vhost_vring(vid, i, &vring); snprintf(vhost_vring, 16, "vring_%d_size", i);