perf unwind-libunwind: Add malloc() failure handling
authorYunseong Kim <yskelg@gmail.com>
Wed, 19 Jun 2024 20:42:12 +0000 (05:42 +0900)
committerNamhyung Kim <namhyung@kernel.org>
Tue, 25 Jun 2024 18:06:20 +0000 (11:06 -0700)
Add malloc() failure handling in unread_unwind_spec_debug_frame().
This make caller find_proc_info() works well when the allocation failure.

Signed-off-by: Yunseong Kim <yskelg@gmail.com>
Reviewed-by: Ian Rogers <irogers@google.com>
Cc: Ravi Bangoria <ravi.bangoria@amd.com>
Cc: Austin Kim <austindh.kim@gmail.com>
Cc: shjy180909@gmail.com
Cc: Ze Gao <zegao2021@gmail.com>
Cc: Leo Yan <leo.yan@linux.dev>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Link: https://lore.kernel.org/r/20240619204211.6438-2-yskelg@gmail.com
tools/perf/util/unwind-libunwind-local.c

index cde267ea3e99ea85a5ff6ee2f1c905a6cccc6bdd..a424eae6d3081d03faa174158da21084fa2b09ec 100644 (file)
@@ -390,6 +390,11 @@ static int read_unwind_spec_debug_frame(struct dso *dso,
                        char *debuglink = malloc(PATH_MAX);
                        int ret = 0;
 
+                       if (debuglink == NULL) {
+                               pr_err("unwind: Can't read unwind spec debug frame.\n");
+                               return -ENOMEM;
+                       }
+
                        ret = dso__read_binary_type_filename(
                                dso, DSO_BINARY_TYPE__DEBUGLINK,
                                machine->root_dir, debuglink, PATH_MAX);