[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