Browse Source

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
tags/n2.7
Luca Barbato 10 years ago
parent
commit
5f5b78aca3
1 changed files with 6 additions and 3 deletions
  1. +6
    -3
      libavdevice/xcbgrab.c

+ 6
- 3
libavdevice/xcbgrab.c View File

@@ -607,14 +607,17 @@ static av_cold int xcbgrab_read_header(AVFormatContext *s)


c->conn = xcb_connect(host, &screen_num); c->conn = xcb_connect(host, &screen_num);


if (opts)
av_free(host);

if ((ret = xcb_connection_has_error(c->conn))) { if ((ret = xcb_connection_has_error(c->conn))) {
av_log(s, AV_LOG_ERROR, "Cannot open display %s, error %d.\n", av_log(s, AV_LOG_ERROR, "Cannot open display %s, error %d.\n",
s->filename[0] ? host : "default", ret); s->filename[0] ? host : "default", ret);
if (opts)
av_freep(&host);
return AVERROR(EIO); return AVERROR(EIO);
} }

if (opts)
av_freep(&host);

setup = xcb_get_setup(c->conn); setup = xcb_get_setup(c->conn);


c->screen = get_screen(setup, screen_num); c->screen = get_screen(setup, screen_num);


Loading…
Cancel
Save