On 18/10/14 02:12, Vittorio Giovara wrote:
ff_socket_nonblock wraps fcntl.

CC: [email protected]
Bug-Id: CID 1026742 / CID 1026743 /CID 1026744 / CID 1087075
---
  libavformat/network.c | 18 ++++++++++++++----
  1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/libavformat/network.c b/libavformat/network.c
index 6d308eb..06614e9 100644
--- a/libavformat/network.c
+++ b/libavformat/network.c
@@ -232,10 +232,14 @@ int ff_socket(int af, int type, int proto)
  int ff_listen_bind(int fd, const struct sockaddr *addr,
                     socklen_t addrlen, int timeout, URLContext *h)
  {
-    int ret;
      int reuse = 1;
      struct pollfd lp = { fd, POLLIN, 0 };
-    setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &reuse, sizeof(reuse));
+    int ret, res;
+
+    ret = setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &reuse, sizeof(reuse));
+    if (ret)
+        return ff_neterrno();

Ok

+
      ret = bind(fd, addr, addrlen);
      if (ret)
          return ff_neterrno();
@@ -254,7 +258,11 @@ int ff_listen_bind(int fd, const struct sockaddr *addr,

      closesocket(fd);

-    ff_socket_nonblock(ret, 1);
+    res = ff_socket_nonblock(ret, 1);
+    if (res < 0) {
+        closesocket(ret);
+        return ff_neterrno();

return res ?

+    }
      return ret;
  }

@@ -266,7 +274,9 @@ int ff_listen_connect(int fd, const struct sockaddr *addr,
      int ret;
      socklen_t optlen;

-    ff_socket_nonblock(fd, 1);
+    ret = ff_socket_nonblock(fd, 1);
+    if (ret < 0)

return ret?
closesocket(fd) ?

lu
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to