Package: libags-audio3 Version: 3.7.44-3 Severity: normal Tags: patch Dear Maintainer,
Upstream discovered wrong ref-count in ags/audio/ags_fx_factory.c affecting libags_audio.so and the gsequencer binary. Without patching memory corruptions could occur. As AgsChannel implementation might be finalize while in use. -- System Information: Debian Release: bullseye/sid APT prefers unstable APT policy: (500, 'unstable') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 5.9.0-1-amd64 (SMP w/24 CPU threads) Locale: LANG=C.UTF-8, LC_CTYPE=C.UTF-8 (charmap=UTF-8), LANGUAGE not set Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) LSM: AppArmor: enabled Versions of packages libags-audio3 depends on: ii gstreamer1.0-plugins-bad 1.18.2-1+b1 ii gstreamer1.0-plugins-base 1.18.3-1 ii gstreamer1.0-plugins-good 1.18.3-1 pn libags3 <none> ii libasound2 1.2.4-1.1 ii libc6 2.31-10 ii libfftw3-double3 3.3.8-2 ii libglib2.0-0 2.66.8-1 ii libgstreamer-plugins-base1.0-0 1.18.3-1 ii libgstreamer1.0-0 1.18.3-1 ii libinstpatch-1.0-2 1.1.6-1 ii libjack-jackd2-0 [libjack-0.125] 1.9.17~dfsg-1 ii libpulse0 14.2-2 ii libsamplerate0 0.2.1+ds0-1 ii libsndfile1 1.0.31-1 ii libsoup2.4-1 2.72.0-2 ii libxml2 2.9.10+dfsg-6.3+b1 libags-audio3 recommends no packages. libags-audio3 suggests no packages.
diff --git a/ags/audio/ags_fx_factory.c b/ags/audio/ags_fx_factory.c index 2f904c133..dd2e78fb0 100644 --- a/ags/audio/ags_fx_factory.c +++ b/ags/audio/ags_fx_factory.c @@ -788,10 +788,6 @@ ags_fx_factory_create_playback(AgsAudio *audio, g_object_unref(input); } - if(channel != NULL){ - g_object_unref(channel); - } - return(start_recall); } @@ -1236,10 +1232,6 @@ ags_fx_factory_create_buffer(AgsAudio *audio, g_object_unref(input); } - if(channel != NULL){ - g_object_unref(channel); - } - return(start_recall); } @@ -1657,6 +1649,10 @@ ags_fx_factory_create_volume(AgsAudio *audio, } } + if(channel != NULL){ + g_object_unref(channel); + } + if((AGS_FX_FACTORY_REMAP & (create_flags)) != 0){ if(fx_volume_audio != NULL){ g_object_unref(fx_volume_audio); @@ -1683,10 +1679,6 @@ ags_fx_factory_create_volume(AgsAudio *audio, g_object_unref(input); } - if(channel != NULL){ - g_object_unref(channel); - } - return(start_recall); } @@ -2131,10 +2123,6 @@ ags_fx_factory_create_peak(AgsAudio *audio, g_object_unref(input); } - if(channel != NULL){ - g_object_unref(channel); - } - return(start_recall); } @@ -2589,10 +2577,6 @@ ags_fx_factory_create_eq10(AgsAudio *audio, g_object_unref(input); } - if(channel != NULL){ - g_object_unref(channel); - } - return(start_recall); } @@ -3047,10 +3031,6 @@ ags_fx_factory_create_analyse(AgsAudio *audio, g_object_unref(input); } - if(channel != NULL){ - g_object_unref(channel); - } - return(start_recall); } @@ -3505,10 +3485,6 @@ ags_fx_factory_create_envelope(AgsAudio *audio, g_object_unref(input); } - if(channel != NULL){ - g_object_unref(channel); - } - return(start_recall); } @@ -3934,10 +3910,6 @@ ags_fx_factory_create_pattern(AgsAudio *audio, g_object_unref(input); } - if(channel != NULL){ - g_object_unref(channel); - } - return(start_recall); } @@ -4381,10 +4353,6 @@ ags_fx_factory_create_notation(AgsAudio *audio, g_object_unref(input); } - if(channel != NULL){ - g_object_unref(channel); - } - return(start_recall); } @@ -4892,10 +4860,6 @@ ags_fx_factory_create_ladspa(AgsAudio *audio, g_object_unref(input); } - if(channel != NULL){ - g_object_unref(channel); - } - return(start_recall); } @@ -5407,10 +5371,6 @@ ags_fx_factory_create_dssi(AgsAudio *audio, g_object_unref(input); } - if(channel != NULL){ - g_object_unref(channel); - } - return(start_recall); } @@ -6025,10 +5985,6 @@ ags_fx_factory_create_lv2(AgsAudio *audio, if(input != NULL){ g_object_unref(input); } - - if(channel != NULL){ - g_object_unref(channel); - } return(start_recall); }