diff mbox

genattrtab: avoid NULL-deref on error

Message ID 87mx65f5du.fsf@rho.meyering.net
State New
Headers show

Commit Message

Jim Meyering April 21, 2012, 3:53 p.m. UTC
I see that no one responded when I posted this in February.
Ok to commit, now?

2012-02-24  Jim Meyering  <meyering@redhat.com>

	* genattrtab.c (gen_attr): Avoid NULL-deref after diagnosing
	absence of an define_enum call.


--
1.7.10.228.g81f95

Comments

Richard Biener April 23, 2012, 9:43 a.m. UTC | #1
On Sat, Apr 21, 2012 at 5:53 PM, Jim Meyering <jim@meyering.net> wrote:
> I see that no one responded when I posted this in February.
> Ok to commit, now?

Ok.

Thanks,
Richard.

> 2012-02-24  Jim Meyering  <meyering@redhat.com>
>
>        * genattrtab.c (gen_attr): Avoid NULL-deref after diagnosing
>        absence of an define_enum call.
>
>
> diff --git a/gcc/genattrtab.c b/gcc/genattrtab.c
> index 4a4c2a2..bfbe3e8 100644
> --- a/gcc/genattrtab.c
> +++ b/gcc/genattrtab.c
> @@ -1,6 +1,6 @@
>  /* Generate code from machine description to compute values of attributes.
>    Copyright (C) 1991, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
> -   2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
> +   2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2012
>    Free Software Foundation, Inc.
>    Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
>
> @@ -2993,8 +2993,9 @@ gen_attr (rtx exp, int lineno)
>       if (!et || !et->md_p)
>        error_with_line (lineno, "No define_enum called `%s' defined",
>                         attr->name);
> -      for (ev = et->values; ev; ev = ev->next)
> -       add_attr_value (attr, ev->name);
> +      if (et)
> +       for (ev = et->values; ev; ev = ev->next)
> +         add_attr_value (attr, ev->name);
>     }
>   else if (*XSTR (exp, 1) == '\0')
>     attr->is_numeric = 1;
> --
> 1.7.10.228.g81f95
Jim Meyering April 24, 2012, 12:07 p.m. UTC | #2
Richard Guenther wrote:
> On Sat, Apr 21, 2012 at 5:53 PM, Jim Meyering <jim@meyering.net> wrote:
>> I see that no one responded when I posted this in February.
>> Ok to commit, now?
>
> Ok.

Thanks.  Pushed.
diff mbox

Patch

diff --git a/gcc/genattrtab.c b/gcc/genattrtab.c
index 4a4c2a2..bfbe3e8 100644
--- a/gcc/genattrtab.c
+++ b/gcc/genattrtab.c
@@ -1,6 +1,6 @@ 
 /* Generate code from machine description to compute values of attributes.
    Copyright (C) 1991, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-   2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
+   2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2012
    Free Software Foundation, Inc.
    Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu)

@@ -2993,8 +2993,9 @@  gen_attr (rtx exp, int lineno)
       if (!et || !et->md_p)
 	error_with_line (lineno, "No define_enum called `%s' defined",
 			 attr->name);
-      for (ev = et->values; ev; ev = ev->next)
-	add_attr_value (attr, ev->name);
+      if (et)
+	for (ev = et->values; ev; ev = ev->next)
+	  add_attr_value (attr, ev->name);
     }
   else if (*XSTR (exp, 1) == '\0')
     attr->is_numeric = 1;