From 3033d422be19421a0dc3cff7f15cd76bb14a11483fe6e91ffe763fc8619958b0 Mon Sep 17 00:00:00 2001 From: Sascha Peilicke Date: Fri, 27 Sep 2013 07:38:03 +0000 Subject: [PATCH] Accepting request 200717 from home:tiwai:branches:multimedia:libs - Fix double free in destructor of caps plugin (bnc#842420) OBS-URL: https://build.opensuse.org/request/show/200717 OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/ladspa?expand=0&rev=28 --- caps-fix-double-free.diff | 21 +++++++++++++++++++ ladspa-devel.spec | 2 +- ladspa.changes | 5 +++++ ladspa.spec | 44 +++++++++++++++++++++++++++++---------- 4 files changed, 60 insertions(+), 12 deletions(-) create mode 100644 caps-fix-double-free.diff diff --git a/caps-fix-double-free.diff b/caps-fix-double-free.diff new file mode 100644 index 0000000..6f01584 --- /dev/null +++ b/caps-fix-double-free.diff @@ -0,0 +1,21 @@ +--- + interface.cc | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +--- a/interface.cc ++++ b/interface.cc +@@ -123,8 +123,12 @@ void _init() + __attribute__ ((destructor)) + void _fini() + { +- for (ulong i = 0; i < N; ++i) +- delete descriptors[i]; ++ for (ulong i = 0; i < N; ++i) { ++ if (descriptors[i]) { ++ delete descriptors[i]; ++ descriptors[i] = NULL; ++ } ++ } + } + + /* /////////////////////////////////////////////////////////////////////// */ diff --git a/ladspa-devel.spec b/ladspa-devel.spec index 3c1a2bf..d20aeca 100644 --- a/ladspa-devel.spec +++ b/ladspa-devel.spec @@ -1,7 +1,7 @@ # # spec file for package ladspa-devel # -# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed diff --git a/ladspa.changes b/ladspa.changes index c8a9ea3..d66c509 100644 --- a/ladspa.changes +++ b/ladspa.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Thu Sep 26 14:37:25 CEST 2013 - tiwai@suse.de + +- Fix double free in destructor of caps plugin (bnc#842420) + ------------------------------------------------------------------- Tue Feb 14 07:51:10 UTC 2012 - coolo@suse.com diff --git a/ladspa.spec b/ladspa.spec index fa1028c..a8314f7 100644 --- a/ladspa.spec +++ b/ladspa.spec @@ -1,7 +1,7 @@ # # spec file for package ladspa # -# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -50,16 +50,34 @@ Release: 0 AutoReq: on Autoprov: off Provides: ladspa > 1.12.code10.3.1 -Provides: ladspa-swh-plugins = %{swh_version} ladspa-AMB = %{AMB_version} ladspa-FIL = %{FIL_version} -Provides: ladspa-REV = %{REV_version} ladspa-VCO = %{VCO_version} ladspa-alienwah = %{alienwah_version} -Provides: ladspa-caps = %{caps_version} ladspa-pvoc = %{pvoc_version} ladspa-tap-plugins = %{tap_version} -Provides: ladspa-vlevel = %{vlevel_version} ladspa-vocoder = %{vocoder_version} ladspa-blop = %{blop_version} -Provides: ladspa-vcf = %{vcf_version} ladspa-MCP = %{MCP_version} -Obsoletes: ladspa-swh-plugins < %{swh_version} ladspa-AMB < %{AMB_version} ladspa-FIL < %{FIL_version} -Obsoletes: ladspa-REV < %{REV_version} ladspa-VCO < %{VCO_version} ladspa-alienwah < %{alienwah_version} -Obsoletes: ladspa-caps < %{caps_version} ladspa-pvoc < %{pvoc_version} ladspa-tap-plugins < %{tap_version} -Obsoletes: ladspa-vlevel < %{vlevel_version} ladspa-vocoder < %{vocoder_version} ladspa-blop < %{blop_version} -Obsoletes: ladspa-vcf < %{vcf_version} ladspa-MCP < %{MCP_version} +Provides: ladspa-AMB = %{AMB_version} +Provides: ladspa-FIL = %{FIL_version} +Provides: ladspa-MCP = %{MCP_version} +Provides: ladspa-REV = %{REV_version} +Provides: ladspa-VCO = %{VCO_version} +Provides: ladspa-alienwah = %{alienwah_version} +Provides: ladspa-blop = %{blop_version} +Provides: ladspa-caps = %{caps_version} +Provides: ladspa-pvoc = %{pvoc_version} +Provides: ladspa-swh-plugins = %{swh_version} +Provides: ladspa-tap-plugins = %{tap_version} +Provides: ladspa-vcf = %{vcf_version} +Provides: ladspa-vlevel = %{vlevel_version} +Provides: ladspa-vocoder = %{vocoder_version} +Obsoletes: ladspa-AMB < %{AMB_version} +Obsoletes: ladspa-FIL < %{FIL_version} +Obsoletes: ladspa-MCP < %{MCP_version} +Obsoletes: ladspa-REV < %{REV_version} +Obsoletes: ladspa-VCO < %{VCO_version} +Obsoletes: ladspa-alienwah < %{alienwah_version} +Obsoletes: ladspa-blop < %{blop_version} +Obsoletes: ladspa-caps < %{caps_version} +Obsoletes: ladspa-pvoc < %{pvoc_version} +Obsoletes: ladspa-swh-plugins < %{swh_version} +Obsoletes: ladspa-tap-plugins < %{tap_version} +Obsoletes: ladspa-vcf < %{vcf_version} +Obsoletes: ladspa-vlevel < %{vlevel_version} +Obsoletes: ladspa-vocoder < %{vocoder_version} Source1: ladspa_sdk_1.13.tar.bz2 Source2: cmt_src_1.15.tar.bz2 Source3: swh-plugins-%{swh_version}.tar.bz2 @@ -116,6 +134,7 @@ Patch25: pvoc-0.1.10-depend-copts-fix.diff Patch26: swh-nostatic-lib.diff Patch27: blop-ladspa_dir.diff Patch28: blop-wdautil-fix.diff +Patch29: caps-fix-double-free.diff Url: http://www.ladspa.org/ BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -199,6 +218,9 @@ touch config.rpath %patch16 %patch25 ) +(cd caps-%{caps_version} +%patch29 -p1 +) %build # This package failed when testing with -Wl,-as-needed being default.