From patchwork Mon Jan 11 17:09:40 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miroslav Rezanina X-Patchwork-Id: 12011163 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 73992C433DB for ; Mon, 11 Jan 2021 17:15:46 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id DBE0C221F9 for ; Mon, 11 Jan 2021 17:15:45 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org DBE0C221F9 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:52460 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kz0nA-0008Jt-NW for qemu-devel@archiver.kernel.org; Mon, 11 Jan 2021 12:15:44 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:49686) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kz0hR-00024L-Uu for qemu-devel@nongnu.org; Mon, 11 Jan 2021 12:09:49 -0500 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:43600) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kz0hP-0006AL-UW for qemu-devel@nongnu.org; Mon, 11 Jan 2021 12:09:49 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1610384987; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:content-type:content-type:in-reply-to:in-reply-to: references:references; bh=hSbUmaNsH6KhLkcsRtmv/N2ljRESvv7WEGcmS4HlhOg=; b=Haqov0izXIOErMSn1kVfFG0WC/pSX3oQNatYSLHClr6HHdxdREEoGLf2rXng/+e47u/AoY 1VKQOwjv7gNoiNYVANKYYIukIcN0hTECzAgUL+sXbFMQ92UIBfki0/+sgjqPaOugDzpSXp NKGfWrTKXgvHA1paVEudlqzDCA6aSwE= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-245-K-PB-rMKOsmbunisWnGMbg-1; Mon, 11 Jan 2021 12:09:45 -0500 X-MC-Unique: K-PB-rMKOsmbunisWnGMbg-1 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 1793280ED8A for ; Mon, 11 Jan 2021 17:09:44 +0000 (UTC) Received: from workimage2020.rezanina.moe.rezanina.moe (unknown [10.40.192.93]) by smtp.corp.redhat.com (Postfix) with ESMTP id 6CB0319D9F for ; Mon, 11 Jan 2021 17:09:43 +0000 (UTC) From: Miroslav Rezanina To: qemu-devel@nongnu.org Subject: [PATCH v2 1/2] Fix net.c warning on GCC 11 Date: Mon, 11 Jan 2021 18:09:40 +0100 Message-Id: <25f6c760c09c2238ad9bdaab97e4ae13bf5af339.1610384501.git.mrezanin@redhat.com> In-Reply-To: References: X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=mrezanin@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Received-SPF: pass client-ip=216.205.24.124; envelope-from=mrezanin@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -29 X-Spam_score: -3.0 X-Spam_bar: --- X-Spam_report: (-3.0 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.251, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" When building qemu with GCC 11, compiling eth.c file produce following warning: warning: array subscript 'struct ip6_ext_hdr_routing[0]' is partly outside array bounds of 'struct ip6_ext_hdr[1]' [-Warray-bounds] This caused by retyping from ip6_ext_hdr to ip6_ext_hdr_routing that has more attributes. As this usage is expected, suppress the warning temporarily through the function using this retyping. Signed-off-by: Miroslav Rezanina --- net/eth.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/net/eth.c b/net/eth.c index 1e0821c5f8..b9bdd0435c 100644 --- a/net/eth.c +++ b/net/eth.c @@ -405,6 +405,8 @@ _eth_get_rss_ex_dst_addr(const struct iovec *pkt, int pkt_frags, struct ip6_ext_hdr *ext_hdr, struct in6_address *dst_addr) { +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Warray-bounds" struct ip6_ext_hdr_routing *rthdr = (struct ip6_ext_hdr_routing *) ext_hdr; if ((rthdr->rtype == 2) && @@ -426,6 +428,7 @@ _eth_get_rss_ex_dst_addr(const struct iovec *pkt, int pkt_frags, } return false; +#pragma GCC diagnostic pop } static bool From patchwork Mon Jan 11 17:09:41 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Miroslav Rezanina X-Patchwork-Id: 12011145 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-16.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9F6C3C433DB for ; Mon, 11 Jan 2021 17:10:49 +0000 (UTC) Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 4ED0921919 for ; Mon, 11 Jan 2021 17:10:49 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4ED0921919 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=redhat.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Received: from localhost ([::1]:42568 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kz0iO-0003Pc-7t for qemu-devel@archiver.kernel.org; Mon, 11 Jan 2021 12:10:48 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:49702) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kz0hS-000264-Hr for qemu-devel@nongnu.org; Mon, 11 Jan 2021 12:09:50 -0500 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:57094) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kz0hQ-0006AN-MB for qemu-devel@nongnu.org; Mon, 11 Jan 2021 12:09:50 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1610384987; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:content-type:content-type:in-reply-to:in-reply-to: references:references; bh=DAlTZGhIdCns2CGdpg7+SlQVh33iem4kbY1C1OfwB6w=; b=fVqTPstscxaI5MS6P9cpUkh7cH8cgs/JAJbJXkobcFwSayFyODDneFShKORt+0eOtjxDhr Ow0teXyh4St8y98ROCDMdBrbgHPSUvkZffb7SjrbPeBvihVOFwu71zOGKUlDt03hKQaSw+ 20lSJaR93ejiflobWWgL3pi2yt+Km/Y= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-122-dNrCCTkkNYqAu3XQA_CQWQ-1; Mon, 11 Jan 2021 12:09:45 -0500 X-MC-Unique: dNrCCTkkNYqAu3XQA_CQWQ-1 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 131CEBBEE0 for ; Mon, 11 Jan 2021 17:09:45 +0000 (UTC) Received: from workimage2020.rezanina.moe.rezanina.moe (unknown [10.40.192.93]) by smtp.corp.redhat.com (Postfix) with ESMTP id 7399F19D9F for ; Mon, 11 Jan 2021 17:09:44 +0000 (UTC) From: Miroslav Rezanina To: qemu-devel@nongnu.org Subject: [PATCH v2 2/2] s390x: Use strpadcpy for copying vm name Date: Mon, 11 Jan 2021 18:09:41 +0100 Message-Id: <7334beb15bb36de2f9472264bea284f91abf686f.1610384501.git.mrezanin@redhat.com> In-Reply-To: References: X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=mrezanin@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Received-SPF: pass client-ip=63.128.21.124; envelope-from=mrezanin@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -29 X-Spam_score: -3.0 X-Spam_bar: --- X-Spam_report: (-3.0 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.251, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+qemu-devel=archiver.kernel.org@nongnu.org Sender: "Qemu-devel" When using strncpy with lenght equal to size of target array, GCC 11 produce following warning: warning: '__builtin_strncpy' specified bound 256 equals destination size [-Wstringop-truncation] To prevent this warning, use strpadcpy function that will enusure that provide functionality similar to strncpy but allow copy strings with length equal size of target array (and discarding endint zero) and ensure array is zeroed after copied string. Signed-off-by: Miroslav Rezanina Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Thomas Huth --- target/s390x/kvm.c | 12 +++++------- target/s390x/misc_helper.c | 7 +++++-- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/target/s390x/kvm.c b/target/s390x/kvm.c index b8385e6b95..dc27fa36c9 100644 --- a/target/s390x/kvm.c +++ b/target/s390x/kvm.c @@ -29,6 +29,7 @@ #include "internal.h" #include "kvm_s390x.h" #include "sysemu/kvm_int.h" +#include "qemu/cutils.h" #include "qapi/error.h" #include "qemu/error-report.h" #include "qemu/timer.h" @@ -1910,18 +1911,15 @@ static void insert_stsi_3_2_2(S390CPU *cpu, __u64 addr, uint8_t ar) strlen(qemu_name))); } sysib.vm[0].ext_name_encoding = 2; /* 2 = UTF-8 */ - memset(sysib.ext_names[0], 0, sizeof(sysib.ext_names[0])); /* If hypervisor specifies zero Extended Name in STSI322 SYSIB, it's * considered by s390 as not capable of providing any Extended Name. * Therefore if no name was specified on qemu invocation, we go with the * same "KVMguest" default, which KVM has filled into short name field. */ - if (qemu_name) { - strncpy((char *)sysib.ext_names[0], qemu_name, - sizeof(sysib.ext_names[0])); - } else { - strcpy((char *)sysib.ext_names[0], "KVMguest"); - } + strpadcpy((char *)sysib.ext_names[0], + sizeof(sysib.ext_names[0]), + qemu_name ?: "KVMguest", '\0'); + /* Insert UUID */ memcpy(sysib.vm[0].uuid, &qemu_uuid, sizeof(sysib.vm[0].uuid)); diff --git a/target/s390x/misc_helper.c b/target/s390x/misc_helper.c index 58dbc023eb..7ea90d414a 100644 --- a/target/s390x/misc_helper.c +++ b/target/s390x/misc_helper.c @@ -19,6 +19,7 @@ */ #include "qemu/osdep.h" +#include "qemu/cutils.h" #include "qemu/main-loop.h" #include "cpu.h" #include "internal.h" @@ -369,8 +370,10 @@ uint32_t HELPER(stsi)(CPUS390XState *env, uint64_t a0, uint64_t r0, uint64_t r1) ebcdic_put(sysib.sysib_322.vm[0].name, qemu_name, MIN(sizeof(sysib.sysib_322.vm[0].name), strlen(qemu_name))); - strncpy((char *)sysib.sysib_322.ext_names[0], qemu_name, - sizeof(sysib.sysib_322.ext_names[0])); + strpadcpy((char *)sysib.sysib_322.ext_names[0], + sizeof(sysib.sysib_322.ext_names[0]), + qemu_name, '\0'); + } else { ebcdic_put(sysib.sysib_322.vm[0].name, "TCGguest", 8); strcpy((char *)sysib.sysib_322.ext_names[0], "TCGguest");