perf hisi-ptt: Fix memory leak in lseek failure handling
authorKuan-Wei Chiu <visitorckw@gmail.com>
Sat, 30 Sep 2023 07:27:19 +0000 (15:27 +0800)
committerNamhyung Kim <namhyung@kernel.org>
Thu, 5 Oct 2023 05:28:07 +0000 (22:28 -0700)
In the previous code, there was a memory leak issue where the previously
allocated memory was not freed upon a failed lseek operation. This patch
addresses the problem by releasing the old memory before returning -errno
in case of a lseek failure. This ensures that memory is properly managed
and avoids potential memory leaks.

Signed-off-by: Kuan-Wei Chiu <visitorckw@gmail.com>
Acked-by: Namhyung Kim <namhyung@kernel.org>
Cc: yangyicong@hisilicon.com
Cc: jonathan.cameron@huawei.com
Link: https://lore.kernel.org/r/20230930072719.1267784-1-visitorckw@gmail.com
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
tools/perf/util/hisi-ptt.c

index 45b614bb73bfa321ac66c6c63e935506748ff0be..43bd1ca62d58244583f8c8f742d890c79b6e7b36 100644 (file)
@@ -108,8 +108,10 @@ static int hisi_ptt_process_auxtrace_event(struct perf_session *session,
                data_offset = 0;
        } else {
                data_offset = lseek(fd, 0, SEEK_CUR);
-               if (data_offset == -1)
+               if (data_offset == -1) {
+                       free(data);
                        return -errno;
+               }
        }
 
        err = readn(fd, data, size);