From patchwork Tue Nov 27 08:32:12 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Markus Trippelsdorf X-Patchwork-Id: 202118 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) by ozlabs.org (Postfix) with SMTP id 5E6802C0087 for ; Tue, 27 Nov 2012 19:32:34 +1100 (EST) Comment: DKIM? See http://www.dkim.org DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=gcc.gnu.org; s=default; x=1354609955; h=Comment: DomainKey-Signature:Received:Received:Received:Received:Received: Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To:Mailing-List: Precedence:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:Sender:Delivered-To; bh=WRiENu2cN+5OC+pKOX7bLr23AbM=; b=naz2sQpi2N/JOho8Mj8mQ6Lh1GP7K8MikmfDYr+duM8M+uktC9uD1lr3wQosHV xZWGvS7oTKEaw77IE7c+BDbZHJ3lxSNoJi8Rc5Ak4HrQupcOOospjtObVMnlCMWr miTB2VX+BOktS/9lvmisrV2AVPtn8H0dc9Iq6gtSJE0cs= Comment: DomainKeys? See http://antispam.yahoo.com/domainkeys DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=default; d=gcc.gnu.org; h=Received:Received:X-SWARE-Spam-Status:X-Spam-Check-By:Received:Received:Received:Date:From:To:Cc:Subject:Message-ID:References:MIME-Version:Content-Type:Content-Disposition:In-Reply-To:Mailing-List:Precedence:List-Id:List-Unsubscribe:List-Archive:List-Post:List-Help:Sender:Delivered-To; b=UIv7RXZtst5HRdfRCLYBqGL7MmkL2IiUc2c9bBX8xVXIkciuqC0HFbumBg5sNy NxwSM8l7ZajyetGVNI32iqpDOz3EqyOtcdla6+JO3I5FlqF3G1Z1MgezPHCyL3ID yaX8fISxHWBHooysRt3XOtjfnlb4lcy0EmRZ6MR1Ceqoo=; Received: (qmail 31440 invoked by alias); 27 Nov 2012 08:32:28 -0000 Received: (qmail 31415 invoked by uid 22791); 27 Nov 2012 08:32:23 -0000 X-SWARE-Spam-Status: No, hits=-2.9 required=5.0 tests=AWL, BAYES_00, DKIM_SIGNED, DKIM_VALID, KHOP_THREADED, RCVD_IN_DNSWL_NONE X-Spam-Check-By: sourceware.org Received: from ud10.udmedia.de (HELO mail.ud10.udmedia.de) (194.117.254.50) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 27 Nov 2012 08:32:15 +0000 Received: (qmail 2900 invoked from network); 27 Nov 2012 09:32:13 +0100 Received: from unknown (HELO x4) (ud10?360p3@91.64.96.133) by mail.ud10.udmedia.de with ESMTPSA (DHE-RSA-AES256-SHA encrypted, authenticated); 27 Nov 2012 09:32:13 +0100 Date: Tue, 27 Nov 2012 09:32:12 +0100 From: Markus Trippelsdorf To: "H.J. Lu" Cc: gcc-patches@gcc.gnu.org Subject: Re: PATCH: lto/55474: global-buffer-overflow in lto-wrapper.c Message-ID: <20121127083212.GA1386@x4> References: <20121126215840.GA30771@intel.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20121126215840.GA30771@intel.com> Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Delivered-To: mailing list gcc-patches@gcc.gnu.org On 2012.11.26 at 13:58 -0800, H.J. Lu wrote: > Hi, > > OPT_SPECIAL_unknown, OPT_SPECIAL_ignore, OPT_SPECIAL_program_name and > OPT_SPECIAL_input_file are special options, which aren't in cl_options. > This patch avoids > > if (!(cl_options[foption->opt_index].flags & CL_TARGET)) > > on them. This patch skips them. OK to install? The same fix is necessary for gcc/lto-opts.c. This solves the issue from PR54795 comment 5, 13 and 20. 2012-11-27 Markus Trippelsdorf PR lto/54795 * lto-opts.c (lto_write_options): Also handle OPT_SPECIAL_unknown, OPT_SPECIAL_ignore and OPT_SPECIAL_program_name. diff --git a/gcc/lto-opts.c b/gcc/lto-opts.c index a235f41..a61a26f 100644 --- a/gcc/lto-opts.c +++ b/gcc/lto-opts.c @@ -93,6 +93,20 @@ lto_write_options (void) { struct cl_decoded_option *option = &save_decoded_options[i]; + /* Skip explicitly some common options that we do not need. */ + switch (option->opt_index) + { + case OPT_dumpbase: + case OPT_SPECIAL_unknown: + case OPT_SPECIAL_ignore: + case OPT_SPECIAL_program_name: + case OPT_SPECIAL_input_file: + continue; + + default: + break; + } + /* Skip frontend and driver specific options here. */ if (!(cl_options[option->opt_index].flags & (CL_COMMON|CL_TARGET|CL_LTO))) continue; @@ -108,17 +122,6 @@ lto_write_options (void) if (cl_options[option->opt_index].flags & (CL_DRIVER|CL_WARNING)) continue; - /* Skip explicitly some common options that we do not need. */ - switch (option->opt_index) - { - case OPT_dumpbase: - case OPT_SPECIAL_input_file: - continue; - - default: - break; - } - for (j = 0; j < option->canonical_option_num_elements; ++j) append_to_collect_gcc_options (&temporary_obstack, &first_p, option->canonical_option[j]);