Fix a segfault if the XFixes extension is not available on the X11 server. Can be reproduced using the VNC server.
Signed-off-by: Nicolas George <geo...@nsup.org> --- libavdevice/x11grab.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/libavdevice/x11grab.c b/libavdevice/x11grab.c index d38c55d..eb75e62 100644 --- a/libavdevice/x11grab.c +++ b/libavdevice/x11grab.c @@ -346,8 +346,9 @@ out: * coordinates */ static void -paint_mouse_pointer(XImage *image, struct x11grab *s) +paint_mouse_pointer(XImage *image, AVFormatContext *s1) { + struct x11grab *s = s1->priv_data; int x_off = s->x_off; int y_off = s->y_off; int width = s->width; @@ -377,6 +378,12 @@ paint_mouse_pointer(XImage *image, struct x11grab *s) XChangeWindowAttributes(dpy, w, CWCursor, &attr); xcim = XFixesGetCursorImage(dpy); + if (!xcim) { + av_log(s1, AV_LOG_WARNING, + "XFixes extension not available, impossible to draw cursor\n"); + s->draw_mouse = 0; + return; + } x = xcim->x - xcim->xhot; y = xcim->y - xcim->yhot; @@ -573,7 +580,7 @@ x11grab_read_packet(AVFormatContext *s1, AVPacket *pkt) } if (s->draw_mouse) { - paint_mouse_pointer(image, s); + paint_mouse_pointer(image, s1); } return s->frame_size; -- 2.0.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel