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
> [email protected]
> https://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
>
--
Peter Meerwald-Stadler
+43-664-2444418 (mobile)
_______________________________________________
pulseaudio-discuss mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss