Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP4:GA
gnome-settings-daemon
gnome-settings-daemon-gvc-crash-headset.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File gnome-settings-daemon-gvc-crash-headset.patch of Package gnome-settings-daemon
commit 25bf3ed75fa604fa73e8b25241119a993fc659d6 Author: Bastien Nocera <hadess@hadess.net> Date: Sun Apr 17 22:27:47 2016 +0200 gvc-mixer-control: Really fix double-free when setting headset In a28e23d9006a32c8982ad8bda11fec131c6b36e8, we said: The callbacks will be called repeatedly, once with data, and later on with eol == 0. Make sure to only free it when we get the eol call instead of once we've applied the settings. Whereas the docs say: When requesting all of these [instances] at once, the callback will be called multiple times, once for each object. When the list has been exhausted, the callback will be called without an information structure and the eol parameter set to a positive value. If an error occurs, the callback will be invoked without an information structure and eol set to a negative value. So, in all, we need to free our callback data when eol is positive, or negative. So, when it's not 0. Seems we got lucky in the original commit because the test machine only had a single soundcard. diff --git a/plugins/media-keys/gvc/gvc-mixer-control.c b/plugins/media-keys/gvc/gvc-mixer-control.c index 5fb1f31..760b05d 100644 --- a/plugins/media-keys/gvc/gvc-mixer-control.c +++ b/plugins/media-keys/gvc/gvc-mixer-control.c @@ -2099,7 +2099,7 @@ sink_info_cb (pa_context *c, int j; const char *s; - if (eol <= 0) { + if (eol != 0) { port_status_data_free (data); return; } @@ -2135,7 +2135,7 @@ source_info_cb (pa_context *c, int j; const char *s; - if (eol <= 0) { + if (eol != 0) { port_status_data_free (data); return; }
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor