From 5f5b78aca35d07c771f5c4c73a984be9fe04a0b8 Mon Sep 17 00:00:00 2001 From: Luca Barbato Date: Thu, 5 Mar 2015 09:44:55 +0100 Subject: [PATCH] xcbgrab: Free the host string after checking the connection Prevent an use after free in the error message. Bug-Id: CID 1274040 CC: libav-stable@libav.org --- libavdevice/xcbgrab.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/libavdevice/xcbgrab.c b/libavdevice/xcbgrab.c index c4db9837e8..20a29d10f6 100644 --- a/libavdevice/xcbgrab.c +++ b/libavdevice/xcbgrab.c @@ -607,14 +607,17 @@ static av_cold int xcbgrab_read_header(AVFormatContext *s) c->conn = xcb_connect(host, &screen_num); - if (opts) - av_free(host); - if ((ret = xcb_connection_has_error(c->conn))) { av_log(s, AV_LOG_ERROR, "Cannot open display %s, error %d.\n", s->filename[0] ? host : "default", ret); + if (opts) + av_freep(&host); return AVERROR(EIO); } + + if (opts) + av_freep(&host); + setup = xcb_get_setup(c->conn); c->screen = get_screen(setup, screen_num);