[PATCH v2 2/5] winegstreamer: Move the conditional cleanup to the create error path.
Chip Davis
cdavis at codeweavers.com
Tue Feb 22 02:58:10 CST 2022
February 22, 2022 2:37 AM, "Rémi Bernon" <rbernon at codeweavers.com> wrote:
> diff --git a/dlls/winegstreamer/wg_transform.c b/dlls/winegstreamer/wg_transform.c
> index e4545774428..81badd0be67 100644
> --- a/dlls/winegstreamer/wg_transform.c
> +++ b/dlls/winegstreamer/wg_transform.c
> @@ -77,15 +75,13 @@ NTSTATUS wg_transform_create(void *args)
> struct wg_format output_format = *params->output_format;
> struct wg_format input_format = *params->input_format;
> GstCaps *src_caps = NULL, *sink_caps = NULL;
> + NTSTATUS status = STATUS_UNSUCCESSFUL;
> GstPadTemplate *template = NULL;
> struct wg_transform *transform;
> - NTSTATUS status;
>
> if (!init_gstreamer())
> return STATUS_UNSUCCESSFUL;
>
> - status = STATUS_NO_MEMORY;
> -
> if (!(transform = calloc(1, sizeof(*transform))))
> goto done;
Wait, won't this...
>
> @@ -124,8 +120,11 @@ done:
> if (status)
> {
> GST_ERROR("Failed to create winegstreamer transform.");
> - if (transform)
> - wg_transform_destroy(transform);
> + if (transform->my_sink)
> + g_object_unref(transform->my_sink);
> + if (transform->my_src)
> + g_object_unref(transform->my_src);
...result in a null dereference here?
> + free(transform);
> }
> else
> {
> --
> 2.34.1
Chip
More information about the wine-devel
mailing list