[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Libunwind-devel] [patch][ob] Get rid of some bogus checks.
From: |
Paul Pluzhnikov |
Subject: |
[Libunwind-devel] [patch][ob] Get rid of some bogus checks. |
Date: |
Wed, 18 Nov 2009 17:16:47 -0800 (PST) |
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
diff --git a/src/dwarf/Gparser.c b/src/dwarf/Gparser.c
index 6fa56ee..abef447 100644
--- a/src/dwarf/Gparser.c
+++ b/src/dwarf/Gparser.c
@@ -784,7 +784,7 @@ HIDDEN int
dwarf_find_save_locs (struct dwarf_cursor *c)
{
dwarf_state_record_t sr;
- dwarf_reg_state_t *rs, *rs1;
+ dwarf_reg_state_t *rs;
struct dwarf_rs_cache *cache;
int ret = 0;
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)
goto out;
- rs1 = &sr.rs_current;
- if (rs1)
- {
- rs = rs_new (cache, c);
- memcpy(rs, rs1, offsetof(struct dwarf_reg_state, ip));
- if (!rs)
- {
- Dprintf ("%s: failed to create unwind rs\n", __FUNCTION__);
- ret = -UNW_EUNSPEC;
- goto out;
- }
- }
+ rs = rs_new (cache, c);
+ memcpy(rs, &sr.rs_current, offsetof(struct dwarf_reg_state, ip));
cache->buckets[c->prev_rs].hint = rs - cache->buckets;
c->hint = rs->hint;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Libunwind-devel] [patch][ob] Get rid of some bogus checks.,
Paul Pluzhnikov <=