mirror of
https://github.com/tobast/libunwind-eh_elf.git
synced 2024-11-15 20:58:13 +01:00
Get rid of some bogus checks.
Greetings, Attached patch is rather on the obvious side: - rs1 can't be NULL since it's assigned on previous line - rs_new never returns NULL, and if it ever did, we'd crash on memcpy that preceeds the NULL check. Tested on Linux/x86_64 with no regressions. Thanks, -- Paul Pluzhnikov
This commit is contained in:
parent
f88e949d16
commit
f958b9dc4f
1 changed files with 3 additions and 13 deletions
|
@ -784,7 +784,7 @@ HIDDEN int
|
||||||
dwarf_find_save_locs (struct dwarf_cursor *c)
|
dwarf_find_save_locs (struct dwarf_cursor *c)
|
||||||
{
|
{
|
||||||
dwarf_state_record_t sr;
|
dwarf_state_record_t sr;
|
||||||
dwarf_reg_state_t *rs, *rs1;
|
dwarf_reg_state_t *rs;
|
||||||
struct dwarf_rs_cache *cache;
|
struct dwarf_rs_cache *cache;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
intrmask_t saved_mask;
|
intrmask_t saved_mask;
|
||||||
|
@ -809,18 +809,8 @@ dwarf_find_save_locs (struct dwarf_cursor *c)
|
||||||
if ((ret = create_state_record_for (c, &sr, c->ip)) < 0)
|
if ((ret = create_state_record_for (c, &sr, c->ip)) < 0)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
rs1 = &sr.rs_current;
|
|
||||||
if (rs1)
|
|
||||||
{
|
|
||||||
rs = rs_new (cache, c);
|
rs = rs_new (cache, c);
|
||||||
memcpy(rs, rs1, offsetof(struct dwarf_reg_state, ip));
|
memcpy(rs, &sr.rs_current, offsetof(struct dwarf_reg_state, ip));
|
||||||
if (!rs)
|
|
||||||
{
|
|
||||||
Dprintf ("%s: failed to create unwind rs\n", __FUNCTION__);
|
|
||||||
ret = -UNW_EUNSPEC;
|
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
cache->buckets[c->prev_rs].hint = rs - cache->buckets;
|
cache->buckets[c->prev_rs].hint = rs - cache->buckets;
|
||||||
|
|
||||||
c->hint = rs->hint;
|
c->hint = rs->hint;
|
||||||
|
|
Loading…
Reference in a new issue