[PATCH 1/5] winegstreamer: Fix multiple leaks in failure pathes.
Nikolay Sivov
nsivov at codeweavers.com
Mon Sep 6 12:37:04 CDT 2021
On 9/6/21 8:23 PM, Zebediah Figura wrote:
In addition to points Zebediah made.
> @@ -1211,7 +1211,8 @@ static HRESULT WINAPI
> media_source_Shutdown(IMFMediaSource *iface)
> source->state = SOURCE_SHUTDOWN;
> - unix_funcs->wg_parser_disconnect(source->wg_parser);
> + if (source->stream_count)
> + unix_funcs->wg_parser_disconnect(source->wg_parser);
> if (source->read_thread)
This is awkward because it implies some relationship between wg_parser
being initialized and able to disconnect when stream_count is set. I
think it's cleaner to let wg_parser_disconnect() handle null, or change
condition to if (wg_parser).
> unix_funcs->wg_parser_destroy(source->wg_parser);
> - if (source->stream_count)
> + if (source->streams)
> free(source->streams);
This should be redundant, no?
> @@ -1231,6 +1232,9 @@ static HRESULT WINAPI
> media_source_Shutdown(IMFMediaSource *iface)
> {
> struct media_stream *stream = source->streams[i];
> + if (!stream)
> + continue;
> +
> stream->state = STREAM_SHUTDOWN;
I think expected way would be to have steam_count consistent with a
number of non-null streams, so you don't have to check for this.
More information about the wine-devel
mailing list