[PATCH] Don't crash if dwarf_decode_macro_bytes's 'body' is NULL
Sergio Durigan Junior
sergiodj@redhat.com
Tue May 14 23:36:00 GMT 2019
On Tuesday, May 14 2019, Tom Tromey wrote:
>>>>>> "Sergio" == Sergio Durigan Junior <sergiodj@redhat.com> writes:
>
> Sergio> OK for master?
>
> Sergio> gdb/ChangeLog:
> Sergio> 2019-05-14 Sergio Durigan Junior <sergiodj@redhat.com>
>
> Sergio> Ref.: https://bugzilla.redhat.com/show_bug.cgi?id=1708192
> Sergio> * dwarf2read.c (dwarf_decode_macro_bytes): Check whether 'body' is
> Sergio> NULL, and complain if that's the case.
>
> Sergio> + complaint (_("debug info gives %s invalid macro definition "
> Sergio> + "without body (corrupted?) at line %d"),
> Sergio> + at_commandline ? _("command-line")
> Sergio> + : _("in-file"),
> Sergio> + line == 0 ? _("zero") : _("non-zero"), line);
>
> This seems weird since it doesn't use current_file, and if I'm reading
> correctly, there are 3 arguments but only 2 % substitutions. The
> compiler should catch the latter, so that's doubly strange. I think for
> a complaint it's fine to emit a line==0 or whatever, mostly it's for
> helping to track down the incorrect spot.
Sorry, you're right, I left one extra argument there. I was testing the
patch on a VM, where I had everything correct, but then I made some
extra adjustments and forgot to remove the extra "line == 0 ? _("zero")
: _("non-zero")".
As for the filename, I was following what other complaints were doing.
But I also agree that having a filename would be best. What do you
think of:
complaint (_("debug info gives %s invalid macro definition "
"without body (corrupted?) at line %d"
"on file %s"),
at_commandline ? _("command-line")
: _("in-file"),
line, current_file->filename);
?
Thanks,
--
Sergio
GPG key ID: 237A 54B1 0287 28BF 00EF 31F4 D0EB 7628 65FC 5E36
Please send encrypted e-mail if possible
http://sergiodj.net/
More information about the Gdb-patches
mailing list