[FFmpeg-devel] [PATCH] avdevice/xcbgrab: Handle reply and error properly
Marton Balint
cus at passwd.hu
Tue Dec 3 22:15:48 EET 2019
On Tue, 3 Dec 2019, Kusanagi Kouichi wrote:
> On 2019-11-19 22:59:30 +0900, Kusanagi Kouichi wrote:
>> Fix a NULL dereference and leaks.
>>
>> Signed-off-by: Kusanagi Kouichi <slash at ac.auone-net.jp>
>> ---
>> libavdevice/xcbgrab.c | 5 +++++
>> 1 file changed, 5 insertions(+)
>>
>> diff --git a/libavdevice/xcbgrab.c b/libavdevice/xcbgrab.c
>> index b7e689343e..063fecf838 100644
>> --- a/libavdevice/xcbgrab.c
>> +++ b/libavdevice/xcbgrab.c
>> @@ -168,6 +168,7 @@ static int xcbgrab_frame(AVFormatContext *s, AVPacket *pkt)
>> "sequence:%u resource_id:%u minor_code:%u major_code:%u.\n",
>> e->response_type, e->error_code,
>> e->sequence, e->resource_id, e->minor_code, e->major_code);
>> + free(e);
>> return AVERROR(EACCES);
>> }
>>
>> @@ -276,6 +277,7 @@ static int xcbgrab_frame_shm(AVFormatContext *s, AVPacket *pkt)
>> e->response_type, e->error_code,
>> e->sequence, e->resource_id, e->minor_code, e->major_code);
>>
>> + free(e);
>> return AVERROR(EACCES);
>> }
>>
>> @@ -537,6 +539,8 @@ static int create_stream(AVFormatContext *s)
>>
>> gc = xcb_get_geometry(c->conn, c->screen->root);
>> geo = xcb_get_geometry_reply(c->conn, gc, NULL);
>> + if (!geo)
>> + return AVERROR_EXTERNAL;
>>
>> if (c->x + c->width > geo->width ||
>> c->y + c->height > geo->height) {
>> @@ -546,6 +550,7 @@ static int create_stream(AVFormatContext *s)
>> c->width, c->height,
>> c->x, c->y,
>> geo->width, geo->height);
>> + free(geo);
>> return AVERROR(EINVAL);
>> }
>>
>> --
>> 2.24.0
>>
>
> ping
Applied, thanks.
Regards,
Marton
More information about the ffmpeg-devel
mailing list