From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by sourceware.org (Postfix) with ESMTPS id 1D6CB3858414 for ; Sun, 28 Nov 2021 08:41:34 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 1D6CB3858414 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=suse.cz Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.cz Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id E50B21FCA1 for ; Sun, 28 Nov 2021 08:41:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1638088892; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=qnnz+YmnB2SxcIxc2wflh5GOMBw2qMiCZfYYOZizKkQ=; b=R24VBrBRa4kQ5ZryRfOXp9yNhgGhz3YCWEDMTnWYj7GjTVpWjDBM9wAZCBszU0pn0SvCUm rPyZBNhhqP67F11kcZa43wtPTrVMjgftAAURe24kO6pMrx5YrsbKJVzcZbjPzqsEF+HPTV NzR2uS+DV7h74DWTqcv4tY2fNvtA7jA= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1638088892; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=qnnz+YmnB2SxcIxc2wflh5GOMBw2qMiCZfYYOZizKkQ=; b=hf+/Za2YjWDhb4l8bTjix+nGuOjcGF2HUeS3yxZCqyY5boqgD7jZ6epeQuLUsq8UFoACmQ ljc6H5lPcTDuC4AA== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id D0E5413446 for ; Sun, 28 Nov 2021 08:41:32 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id f+t/MbxAo2F5KQAAMHmgww (envelope-from ) for ; Sun, 28 Nov 2021 08:41:32 +0000 Content-Type: multipart/mixed; boundary="------------VGw0nZErpTxtzgiWc4mi9OoS" Message-ID: <72e4e348-21f5-d469-b58f-2fe97a940d59@suse.cz> Date: Sun, 28 Nov 2021 09:41:32 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.3.2 Subject: Re: [PATCH] d: fix ASAN in option processing Content-Language: en-US From: =?UTF-8?Q?Martin_Li=c5=a1ka?= To: gcc-patches@gcc.gnu.org References: In-Reply-To: X-Spam-Status: No, score=-10.4 required=5.0 tests=BAYES_00, BODY_8BITS, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, NICE_REPLY_A, SPF_HELO_NONE, SPF_PASS, TXREP, WEIRD_PORT autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 28 Nov 2021 08:41:36 -0000 This is a multi-part message in MIME format. --------------VGw0nZErpTxtzgiWc4mi9OoS Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 11/25/21 14:59, Martin Liška wrote: > Fixes: > > ==129444==ERROR: AddressSanitizer: global-buffer-overflow on address 0x00000666ca5c at pc 0x000000ef094b bp 0x7fffffff8180 sp 0x7fffffff8178 > READ of size 4 at 0x00000666ca5c thread T0 >     #0 0xef094a in parse_optimize_options ../../gcc/d/d-attribs.cc:855 >     #1 0xef0d36 in d_handle_optimize_attribute ../../gcc/d/d-attribs.cc:916 >     #2 0xef107e in d_handle_optimize_attribute ../../gcc/d/d-attribs.cc:887 >     #3 0xff85b1 in decl_attributes(tree_node**, tree_node*, int, tree_node*) ../../gcc/attribs.c:829 >     #4 0xef2a91 in apply_user_attributes(Dsymbol*, tree_node*) ../../gcc/d/d-attribs.cc:427 >     #5 0xf7b7f3 in get_symbol_decl(Declaration*) ../../gcc/d/decl.cc:1346 >     #6 0xf87bc7 in get_symbol_decl(Declaration*) ../../gcc/d/decl.cc:967 >     #7 0xf87bc7 in DeclVisitor::visit(FuncDeclaration*) ../../gcc/d/decl.cc:808 >     #8 0xf83db5 in DeclVisitor::build_dsymbol(Dsymbol*) ../../gcc/d/decl.cc:146 > > for the following test-case: gcc/testsuite/gdc.dg/attr_optimize1.d. > > Ready for master? > Thanks, > Martin > > gcc/d/ChangeLog: > >     * d-attribs.cc (parse_optimize_options): Check index before >     accessing cl_options. > --- >  gcc/d/d-attribs.cc | 4 +++- >  1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/gcc/d/d-attribs.cc b/gcc/d/d-attribs.cc > index d81b7d122f7..1ec800526f7 100644 > --- a/gcc/d/d-attribs.cc > +++ b/gcc/d/d-attribs.cc > @@ -852,7 +852,9 @@ parse_optimize_options (tree args) >    unsigned j = 1; >    for (unsigned i = 1; i < decoded_options_count; ++i) >      { > -      if (! (cl_options[decoded_options[i].opt_index].flags & CL_OPTIMIZATION)) > +      unsigned opt_index = decoded_options[i].opt_index; > +      if (opt_index >= cl_options_count > +      && ! (cl_options[opt_index].flags & CL_OPTIMIZATION)) >      { >        ret = false; >        warning (OPT_Wattributes, Sorry, I made a stupid thinko in the patch. There's fix that I'm going to install. Martin --------------VGw0nZErpTxtzgiWc4mi9OoS Content-Type: text/x-patch; charset=UTF-8; name="0001-d-fix-thinko-in-optimize-attr-parsing.patch" Content-Disposition: attachment; filename="0001-d-fix-thinko-in-optimize-attr-parsing.patch" Content-Transfer-Encoding: base64 RnJvbSA3YTY2YzQ5MDlmZDE3NWJhNDI5ZjM5YTNjYTMwYmUzOWVhMDJhZTY0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJ0aW4gTGlza2EgPG1saXNrYUBzdXNlLmN6PgpE YXRlOiBTdW4sIDI4IE5vdiAyMDIxIDA5OjM5OjQwICswMTAwClN1YmplY3Q6IFtQQVRDSF0g ZDogZml4IHRoaW5rbyBpbiBvcHRpbWl6ZSBhdHRyIHBhcnNpbmcKCmdjYy9kL0NoYW5nZUxv ZzoKCgkqIGQtYXR0cmlicy5jYyAocGFyc2Vfb3B0aW1pemVfb3B0aW9ucyk6IEZpeCB0aGlu a28uCi0tLQogZ2NjL2QvZC1hdHRyaWJzLmNjIHwgMiArLQogMSBmaWxlIGNoYW5nZWQsIDEg aW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZ2NjL2QvZC1hdHRy aWJzLmNjIGIvZ2NjL2QvZC1hdHRyaWJzLmNjCmluZGV4IDFlYzgwMDUyNmY3Li5iNzljZjk2 ZjU1YyAxMDA2NDQKLS0tIGEvZ2NjL2QvZC1hdHRyaWJzLmNjCisrKyBiL2djYy9kL2QtYXR0 cmlicy5jYwpAQCAtODU0LDcgKzg1NCw3IEBAIHBhcnNlX29wdGltaXplX29wdGlvbnMgKHRy ZWUgYXJncykKICAgICB7CiAgICAgICB1bnNpZ25lZCBvcHRfaW5kZXggPSBkZWNvZGVkX29w dGlvbnNbaV0ub3B0X2luZGV4OwogICAgICAgaWYgKG9wdF9pbmRleCA+PSBjbF9vcHRpb25z X2NvdW50Ci0JICAmJiAhIChjbF9vcHRpb25zW29wdF9pbmRleF0uZmxhZ3MgJiBDTF9PUFRJ TUlaQVRJT04pKQorCSAgfHwgISAoY2xfb3B0aW9uc1tvcHRfaW5kZXhdLmZsYWdzICYgQ0xf T1BUSU1JWkFUSU9OKSkKIAl7CiAJICByZXQgPSBmYWxzZTsKIAkgIHdhcm5pbmcgKE9QVF9X YXR0cmlidXRlcywKLS0gCjIuMzQuMAoK --------------VGw0nZErpTxtzgiWc4mi9OoS--