ffmpeg | branch: master | Kusanagi Kouichi <sl...@ac.auone-net.jp> | Tue Nov 19 22:59:30 2019 +0900| [12bbfc4ccaa150e06895691049fa2ea33385d210] | committer: Marton Balint
avdevice/xcbgrab: Handle reply and error properly Fix a NULL dereference and leaks. Signed-off-by: Kusanagi Kouichi <sl...@ac.auone-net.jp> Signed-off-by: Marton Balint <c...@passwd.hu> > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=12bbfc4ccaa150e06895691049fa2ea33385d210 --- 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); } _______________________________________________ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog To unsubscribe, visit link above, or email ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".