[PATCH v2] perf unwind: handle allocation failure in libdw__get_entries()
Triet Hoang <[email protected]>
| Newsgroups | org.kernel.vger.linux-perf-users,dev.linux.lists.sashiko-reviews |
|---|---|
| Message-ID | <[email protected]> |
Check the return value of zalloc() before dereferencing the allocated dwfl_ui_ti structure. Return -ENOMEM when the allocation fails to avoid a NULL pointer dereference. Signed-off-by: Triet Hoang <[email protected]> --- Changes in v2: - Free the ui structure before returning -ENOMEM to avoid memory leak. --- tools/perf/util/unwind-libdw.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tools/perf/util/unwind-libdw.c b/tools/perf/util/unwind-libdw.c index 7f35042be567..fd8a5125468c 100644 --- a/tools/perf/util/unwind-libdw.c +++ b/tools/perf/util/unwind-libdw.c @@ -379,6 +379,11 @@ int libdw__get_entries(unwind_entry_cb_t cb, void *arg, dwfl = dwfl_ui_ti->dwfl; } else { dwfl_ui_ti = zalloc(sizeof(*dwfl_ui_ti)); + if (!dwfl_ui_ti) { + free(ui); + return -ENOMEM; + } + dwfl = dwfl_begin(&offline_callbacks); if (!dwfl) goto out; -- 2.53.0