Prevent a NULL deref in _dwarf_loclists_fill_in_lle_head #312
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hi, I would like to suggest a small patch in
dwarf_loclists.c, preventing aNULLderef in_dwarf_loclists_fill_in_lle_head()in case there is no loclists context.I hit a reproducible crash in libdwarf when calling
dwarf_get_loclist_c()on a DWARF5 object whose.debug_loclistsdata is missing/empty/invalid (in our case, relocations failed, so the loclist offset was garbage).The code path returns
DW_DLV_NO_ENTRYbut then dereferences aNULLarray pointer, causing a segfault.This keeps the function consistent with other libdwarf call patterns. For a missing or malformed section it should return
DW_DLV_ERRORand prevent a segfault. This patch returns an an error and callers can continue.What do you think?