Commit bdff070c authored by Kuan-Wei Chiu's avatar Kuan-Wei Chiu Committed by Junhao He
Browse files

perf hisi-ptt: Fix memory leak in lseek failure handling

mainline inclusion
from mainline-v6.7-rc1
commit be7a4caa7c45bd4b0a39cdb260905b52a87c8688
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/I8MEWF
CVE: NA

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=be7a4caa7c45bd4b0a39cdb260905b52a87c8688



-------------------------------------------

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: default avatarKuan-Wei Chiu <visitorckw@gmail.com>
Acked-by: default avatarNamhyung 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: default avatarNamhyung Kim <namhyung@kernel.org>
Signed-off-by: default avatarJunhao He <hejunhao3@huawei.com>
parent 67d516f9
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -108,9 +108,11 @@ 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);
	if (err != (ssize_t)size) {