[pulseaudio-discuss] [PATCH] sink-input, source-output: Fix a leak during property change logging
Peter Meerwald-Stadler
pmeerw at pmeerw.net
Wed Aug 10 16:33:01 UTC 2016
Hi,
> Using pa_xfree() irrespective of whether old_value is NULL or not to
> avoid potentially confusing nest of if statements.
starring at the same issue ATM :)
the proposed fix below gets rid of the potential leak, but
(1) why do we set old_value to "(data)" in the first place?
wouldn't "(null)" make more sense?
(2) in case value == 0, we'd still overwrite old_value, makes no sense
(3) could use pa_safe_streq()
my suggestion would be
if (pa_proplist_contains(o->proplist, key)) {
old_value = pa_xstrdup(pa_proplist_gets(o->proplist, key));
if (str_safe_streq(value, old_value))
goto finish;
if (!old_value)
old_value = pa_xstrdup("(null)"); // or data?
} else {
regards, p.
> CID: 1352052
> ---
> src/pulsecore/sink-input.c | 4 +++-
> src/pulsecore/source-output.c | 4 +++-
> 2 files changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/src/pulsecore/sink-input.c b/src/pulsecore/sink-input.c
> index a7f6d55..1ed5dda 100644
> --- a/src/pulsecore/sink-input.c
> +++ b/src/pulsecore/sink-input.c
> @@ -1436,8 +1436,10 @@ void pa_sink_input_set_property(pa_sink_input *i, const char *key, const char *v
> if (value && old_value) {
> if (pa_streq(value, old_value))
> goto finish;
> - } else
> + } else {
> + pa_xfree(old_value);
> old_value = pa_xstrdup("(data)");
> + }
> } else {
> if (!value)
> goto finish;
> diff --git a/src/pulsecore/source-output.c b/src/pulsecore/source-output.c
> index 9e951ff..6c48bbc 100644
> --- a/src/pulsecore/source-output.c
> +++ b/src/pulsecore/source-output.c
> @@ -1089,8 +1089,10 @@ void pa_source_output_set_property(pa_source_output *o, const char *key, const c
> if (value && old_value) {
> if (pa_streq(value, old_value))
> goto finish;
> - } else
> + } else {
> + pa_xfree(old_value);
> old_value = pa_xstrdup("(data)");
> + }
> } else {
> if (!value)
> goto finish;
> --
> 2.7.4
>
> _______________________________________________
> pulseaudio-discuss mailing list
> pulseaudio-discuss at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
>
--
Peter Meerwald-Stadler
+43-664-2444418 (mobile)
More information about the pulseaudio-discuss
mailing list