X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fmi%2FGdyn-remote.c;h=702c265ab53a8a51424c20dcdad81861d77c6989;hb=HEAD;hp=40a5ad8b5aba415b63453d4ef3609fcc66b1a668;hpb=741d9fd0f86609a35c09b820a2907e877266f6b4;p=platform%2Fupstream%2Flibunwind.git diff --git a/src/mi/Gdyn-remote.c b/src/mi/Gdyn-remote.c index 40a5ad8..702c265 100644 --- a/src/mi/Gdyn-remote.c +++ b/src/mi/Gdyn-remote.c @@ -228,7 +228,7 @@ unwi_dyn_remote_find_proc_info (unw_addr_space_t as, unw_word_t ip, if (fetchw (as, a, &addr, &gen1, arg) < 0 || fetchw (as, a, &addr, &next_addr, arg) < 0) - return ret; + goto fail; for (addr = next_addr; addr != 0; addr = next_addr) { @@ -245,6 +245,10 @@ unwi_dyn_remote_find_proc_info (unw_addr_space_t as, unw_word_t ip, { if (!di) di = calloc (1, sizeof (*di)); + if (!di) { + ret = -UNW_ENOMEM; + goto fail; + } di->start_ip = start_ip; di->end_ip = end_ip; @@ -275,10 +279,11 @@ unwi_dyn_remote_find_proc_info (unw_addr_space_t as, unw_word_t ip, recheck: addr = dyn_list_addr; if (fetchw (as, a, &addr, &gen2, arg) < 0) - return ret; + goto fail; } while (gen1 != gen2); +fail: if (ret < 0 && di) free (di);