This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


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



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]