On Thu, Jan 24, 2019 at 4:11 PM Nathan Sidwell <nat...@acm.org> wrote: > > I just tripped over a segfault in libbacktrace. We apply strrchr to a > possibly NULL filename, with predictable results when it is. > > elf.c:3044 passes NULL as the filename parm: > ret = elf_add (state, NULL, d, base_address, error_callback, data, > fileline_fn, found_sym, found_dwarf, NULL, 0, 1, > NULL, > 0); > > This gets to elf_open_debugfile_by_debuglink which passes it on through: > ddescriptor = elf_find_debugfile_by_debuglink (state, filename, > debuglink_name, > error_callback, data); > > this patch avoids the strrchr when filename is null. I reordered the > way prefix & prefix len got set, finding it prefereable to: > slash = filename ? NULL : strrchr (filename, '/'); > but if you prefer to avoid the assignment in the conditional I'm fine > with that too.
Yeah, please don't do an assignment in a conditional. Why don't we just pass "" instead of NULL in the call to elf_add? If that works, that is OK. Thanks. Ian