Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:dirkmueller:acdc:sp5-rebuild
pipewire.16602
0018-stream-fix-some-more-leaks-in-error-paths....
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0018-stream-fix-some-more-leaks-in-error-paths.patch of Package pipewire.16602
From 21fc163c49309a04689fc4d636df4622198f5570 Mon Sep 17 00:00:00 2001 From: Wim Taymans <wtaymans@redhat.com> Date: Thu, 2 Jul 2020 16:22:49 +0200 Subject: [PATCH] stream: fix some more leaks in error paths --- src/pipewire/stream.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/pipewire/stream.c b/src/pipewire/stream.c index 086c3468..9db27296 100644 --- a/src/pipewire/stream.c +++ b/src/pipewire/stream.c #@@ -1474,7 +1474,6 @@ pw_stream_connect(struct pw_stream *stream, # impl->warn_mlock = SPA_FLAG_IS_SET(flags, PW_STREAM_FLAG_RT_PROCESS); # pw_properties_set(stream->properties, "mem.warn-mlock", impl->warn_mlock ? "true" : "false"); # #- # if ((pw_properties_get(stream->properties, PW_KEY_MEDIA_CLASS) == NULL)) { # const char *media_type = pw_properties_get(stream->properties, PW_KEY_MEDIA_TYPE); # pw_properties_setf(stream->properties, PW_KEY_MEDIA_CLASS, "Stream/%s/%s", @@ -1504,6 +1503,10 @@ pw_stream_connect(struct pw_stream *stream, pw_log_debug(NAME" %p: creating node", stream); props = pw_properties_copy(stream->properties); + if (props == NULL) { + res = -errno; + goto error_node; + } if ((str = pw_properties_get(props, PW_KEY_STREAM_MONITOR)) && pw_properties_parse_bool(str)) { @@ -1533,6 +1536,7 @@ pw_stream_connect(struct pw_stream *stream, PW_VERSION_NODE, props, 0); + props = NULL; if (impl->node == NULL) { res = -errno; goto error_node; @@ -1540,6 +1544,7 @@ pw_stream_connect(struct pw_stream *stream, } else { impl->node = follower; pw_properties_free(props); + props = NULL; } if (!SPA_FLAG_IS_SET(impl->flags, PW_STREAM_FLAG_INACTIVE)) pw_impl_node_set_active(impl->node, true); @@ -1560,12 +1565,17 @@ pw_stream_connect(struct pw_stream *stream, error_connect: pw_log_error(NAME" %p: can't connect: %s", stream, spa_strerror(res)); - return res; + goto exit_cleanup; error_node: pw_log_error(NAME" %p: can't make node: %s", stream, spa_strerror(res)); - return res; + goto exit_cleanup; error_proxy: pw_log_error(NAME" %p: can't make proxy: %s", stream, spa_strerror(res)); + goto exit_cleanup; + +exit_cleanup: + if (props) + pw_properties_free(props); return res; }
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