diff --git a/libva.spec b/libva.spec index 1491683..98588c3 100644 --- a/libva.spec +++ b/libva.spec @@ -1,10 +1,11 @@ Name: libva Version: 2.5.0 -Release: 2 +Release: 3 Summary: Libva is an implementation for VA-API (Video Acceleration API) License: MIT URL: https://github.com/intel/libva Source0: https://github.com/intel/%{name}/archive/%{version}/%{name}-%{version}.tar.gz +Patch0: trace-fix-memory-leak-on-closing-the-trace.patch BuildRequires: libtool libudev-devel libXext-devel libXfixes-devel libdrm-devel git BuildRequires: libpciaccess-devel mesa-libEGL-devel mesa-libGL-devel libglvnd-devel @@ -67,6 +68,9 @@ autoreconf -vif %changelog +* Thu Dec 28 2023 fandehui - 2.5.0-3 +- trace: fix memory leak on closing the trace + * Tue Oct 13 2020 hanhui - 2.5.0-2 - change mesa-libEGL-devel to libglvnd-devel in buildrequires diff --git a/trace-fix-memory-leak-on-closing-the-trace.patch b/trace-fix-memory-leak-on-closing-the-trace.patch new file mode 100644 index 0000000..34f7702 --- /dev/null +++ b/trace-fix-memory-leak-on-closing-the-trace.patch @@ -0,0 +1,52 @@ +From 9542f7ba9e88b04b4c1a5d7d71ba686132b7313c Mon Sep 17 00:00:00 2001 +From: Dmitry Rogozhkin +Date: Tue, 13 Aug 2019 07:15:44 -0700 +Subject: [PATCH] trace: fix memory leak on closing the trace + +Fixes: #327 + +This removes redundunt check for the number of log files. The whole +'struct va_trace' is being calloc-d and we can just check that +pointers to log files are valid instead of relying on number of +active log files. + +Signed-off-by: Dmitry Rogozhkin +--- + va/va_trace.c | 7 ------- + 1 file changed, 7 deletions(-) + +diff --git a/va/va_trace.c b/va/va_trace.c +index ccbd471..b1964c9 100755 +--- a/va/va_trace.c ++++ b/va/va_trace.c +@@ -99,8 +99,6 @@ struct trace_log_file { + }; + + struct trace_log_files_manager { +- int num; +- + struct trace_log_file log_file[MAX_TRACE_THREAD_NUM]; + }; + +@@ -848,9 +846,6 @@ void va_TraceEnd(VADisplay dpy) + for(i = 0;i < MAX_TRACE_THREAD_NUM;i++) { + struct trace_log_file *plog_file = NULL; + +- if(pva_trace->log_files_manager.num <= 0) +- break; +- + plog_file = &pva_trace->log_files_manager.log_file[i]; + if(plog_file) { + if(plog_file->fn_log) +@@ -858,8 +853,6 @@ void va_TraceEnd(VADisplay dpy) + + if(plog_file->fp_log) + fclose(plog_file->fp_log); +- +- pva_trace->log_files_manager.num--; + } + } + +-- +2.27.0 +