Patchwork [GOOGLE] More strict checking for call args

login
register
mail settings
Submitter Martin Jambor
Date June 10, 2013, 9:19 a.m.
Message ID <20130610091911.GD30912@virgil.suse>
Download mbox | patch
Permalink /patch/250201/
State New
Headers show

Comments

Martin Jambor - June 10, 2013, 9:19 a.m.
Hi,

On Thu, Jun 06, 2013 at 08:10:13AM -0700, Dehao Chen wrote:
> Hi, Martin,
> 
> Yes, your patch can fix my case. Thanks a lot for the fix.

good.  However, as usual when I'm trying to do things too quickly, I
made a stupid mistaker and testing has revealed I picked exactly the
wrong branch in the second hunk.  So this is the correct patch, now
after proper bootstrapping and testing on x86_64-linux.  Since the
intent is clearly the same as the approved patch, I intend to commit
it later today/early tomorrow, unless there are any objections.

Thanks and sorry again,

Martin


2013-06-07  Martin Jambor  <mjambor@suse.cz>

	* ipa-cp.c (ipa_get_indirect_edge_target_1): Check that param_index is
	within bounds at the beginning of the function.

Patch

Index: src/gcc/ipa-cp.c
===================================================================
--- src.orig/gcc/ipa-cp.c
+++ src/gcc/ipa-cp.c
@@ -1481,7 +1481,8 @@  ipa_get_indirect_edge_target_1 (struct c
   tree otr_type;
   tree t;
 
-  if (param_index == -1)
+  if (param_index == -1
+      || known_vals.length () <= (unsigned int) param_index)
     return NULL_TREE;
 
   if (!ie->indirect_info->polymorphic)
@@ -1516,8 +1517,7 @@  ipa_get_indirect_edge_target_1 (struct c
 	    t = NULL;
 	}
       else
-	t = (known_vals.length () > (unsigned int) param_index
-	     ? known_vals[param_index] : NULL);
+	t = known_vals[param_index];
 
       if (t &&
 	  TREE_CODE (t) == ADDR_EXPR