OSDN Git Service

tcp: Check the return value from getsockopt
authorMartin Storsjö <martin@martin.st>
Tue, 19 Jun 2012 14:50:38 +0000 (17:50 +0300)
committerMartin Storsjö <martin@martin.st>
Tue, 19 Jun 2012 17:25:07 +0000 (20:25 +0300)
Make sure we actually have an error code in ret, in case
getsockopt failed.

Signed-off-by: Martin Storsjö <martin@martin.st>
libavformat/tcp.c

index e7c6210..f1bad84 100644 (file)
@@ -139,7 +139,8 @@ static int tcp_open(URLContext *h, const char *uri, int flags)
         }
         /* test error */
         optlen = sizeof(ret);
-        getsockopt (fd, SOL_SOCKET, SO_ERROR, &ret, &optlen);
+        if (getsockopt (fd, SOL_SOCKET, SO_ERROR, &ret, &optlen))
+            ret = AVUNERROR(ff_neterrno());
         if (ret != 0) {
             char errbuf[100];
             ret = AVERROR(ret);