[PATCH 2/7] [D] libiberty: Fail if reached end of symbol string

Jeff Law law@redhat.com
Thu May 14 13:01:00 GMT 2015


On 05/13/2015 02:51 AM, Iain Buclaw wrote:
> If a symbol that has so far been valid abruptly ends then we will want
> to fail the process rather than silently succeed.
>
> ---
> libiberty/ChangeLog
>
> 2015-05-13 Iain Buclaw  <ibuclaw@gdcproject.org>
>
>      * d-demangle.c (dlang_call_convention): Return NULL if have reached the
>      end of the symbol, but expected more.
>      (dlang_attributes): Likewise.
>      (dlang_function_type): Likewise.
>      (dlang_type): Likewise.
>      (dlang_identifier): Likewise.
>      (dlang_value): Likewise.
I spot checked various callers of these functions that not return NULL 
and they looked reasonable. Though I was a bit concerned about the 
callers of dlang_type, dlang_value and dlang_identifier.

In those cases we'll often still do the string_append, string_setlength 
and other calls in the caller of dlang_{value,type,identifier}.  I'm 
assuming that's safe (the error still appears to be bubbling up properly).

If you can confirm that we're OK in those cases, then this is OK for the 
trunk.

jeff




More information about the Gcc-patches mailing list