Commit 12bbfc4c authored by Kusanagi Kouichi's avatar Kusanagi Kouichi Committed by Marton Balint

avdevice/xcbgrab: Handle reply and error properly

Fix a NULL dereference and leaks.
Signed-off-by: 's avatarKusanagi Kouichi <slash@ac.auone-net.jp>
Signed-off-by: 's avatarMarton Balint <cus@passwd.hu>
parent 5ac8675c
......@@ -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);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment