From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 45677 invoked by alias); 29 Jan 2020 20:18:17 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 45590 invoked by uid 89); 29 Jan 2020 20:18:16 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-3.9 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 spammy=brain, challenge, interactions, HX-Languages-Length:2050 X-HELO: us-smtp-delivery-1.mimecast.com Received: from us-smtp-1.mimecast.com (HELO us-smtp-delivery-1.mimecast.com) (207.211.31.81) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 29 Jan 2020 20:18:15 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1580329093; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=JPG5gqWNRbrSY+cQbrdowceE9X91s8819CtobNPAYX4=; b=e8YpexIaX0Xfu+zoRmdk1IRO7iOEYPL7zKaHOiRlBM6zE293V6E1BzjbBtyUr5EfSBiYWy +xtm3uiV8QG9c7y74dz14ItHO7lEFPGaFbjtUgs4g3+6djkaZ4fvd4U+J5IA2BY1myks+P eyxHuQhJ+xE3r0eL27bpS+ZPsKCEtF0= 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-213-mfBesoMpMs-v-hzQXdlnWA-1; Wed, 29 Jan 2020 15:18:11 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id A3C6A8010D0 for ; Wed, 29 Jan 2020 20:18:10 +0000 (UTC) Received: from localhost (unused-10-15-17-196.yyz.redhat.com [10.15.17.196]) by smtp.corp.redhat.com (Postfix) with ESMTP id 7875E77923; Wed, 29 Jan 2020 20:18:10 +0000 (UTC) From: Sergio Durigan Junior To: Pedro Alves Cc: GDB Patches Subject: Re: [PATCH] Assert that 'length' > 0 on infcmd.c:construct_inferior_arguments References: <20200129175943.1035-1-sergiodj@redhat.com> <640bcf24-b8c3-3c96-0ea5-2efdc29f039a@redhat.com> <87lfpqrqcg.fsf@redhat.com> <9d7548f2-68e5-4b58-2fc2-9745b50e1dd4@redhat.com> Date: Wed, 29 Jan 2020 20:24:00 -0000 In-Reply-To: <9d7548f2-68e5-4b58-2fc2-9745b50e1dd4@redhat.com> (Pedro Alves's message of "Wed, 29 Jan 2020 20:13:47 +0000") Message-ID: <87ftfym2yl.fsf@redhat.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.2 (gnu/linux) MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain Content-Transfer-Encoding: quoted-printable X-IsSubscribed: yes X-SW-Source: 2020-01/txt/msg00959.txt.bz2 On Wednesday, January 29 2020, Pedro Alves wrote: > On 1/29/20 7:54 PM, Sergio Durigan Junior wrote: >> On Wednesday, January 29 2020, Pedro Alves wrote: > >>> Uppercase ARGC. But putting >>> >>> gdb_assert (argc > 0); >>> >>> at the top of the function instead as I originally suggested also works >>> for me (tried current gcc master), which seems a bit better to me, as it >>> covers both branches at once. Did it not work for you? This makes gcc= see >>> that the loops always run at least once. >>=20 >> Yes, this should work. >>=20 >> Updated patch below. > > The version you sent won't build for sure -- you're checking > length instead of argc: > > @@ -268,6 +268,11 @@ construct_inferior_arguments (int argc, char **argv) > { > char *result; >=20=20=20 > + /* argc should always be at least 1, but we double check this > + here. This is also needed to silence -Werror-stringop > + warnings. */ > + gdb_assert (length > 0); Congrats, this is the new challenge called "How many interactions does it take to get a simple patch accepted?" Sorry about this brain fart. I should slow down. > This is OK with that fixed, but please update the commit log, here: > > "The solution here is to explicit check that 'length' is greater than > 0. Since we're dealing with 'argc', I think it's pretty much > guaranteed that it's going to be at least 1." > > I'd go with: > > The solution here is to assert that 'argc' is greater than > 0 on entry, which makes GCC understand that the loops always > run at least once, and thus 'length' is always > 0. > > ... and also update the commit's subject. I'd use > > Fix -Werror-stringop error on infcmd.c:construct_inferior_arguments > > instead, to talk in terms of what you're fixing instead of how > you're fixing it. OK, I'll do those things *calmly* and put your name as the author of the patch. Thanks, --=20 Sergio GPG key ID: 237A 54B1 0287 28BF 00EF 31F4 D0EB 7628 65FC 5E36 Please send encrypted e-mail if possible http://sergiodj.net/