From 27852f2f1dec3749ea79883b70484c841169f747 Mon Sep 17 00:00:00 2001 From: Anders Nystrom Date: Thu, 9 Apr 2015 02:38:41 +0200 Subject: libavformat: Handle error return from ff_listen_bind Handle error return from ff_listen_bind without leaking file descriptors. Signed-off-by: Anders Nystrom Signed-off-by: Luca Barbato --- libavformat/unix.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'libavformat/unix.c') diff --git a/libavformat/unix.c b/libavformat/unix.c index 5c6f576487..72b8fcdbbb 100644 --- a/libavformat/unix.c +++ b/libavformat/unix.c @@ -75,12 +75,11 @@ static int unix_open(URLContext *h, const char *filename, int flags) return ff_neterrno(); if (s->listen) { - fd = ff_listen_bind(fd, (struct sockaddr *)&s->addr, - sizeof(s->addr), s->timeout, h); - if (fd < 0) { - ret = fd; + ret = ff_listen_bind(fd, (struct sockaddr *)&s->addr, + sizeof(s->addr), s->timeout, h); + if (ret < 0) goto fail; - } + fd = ret; } else { ret = ff_listen_connect(fd, (struct sockaddr *)&s->addr, sizeof(s->addr), s->timeout, h, 0); -- cgit v1.2.3