dccp: avoid indefinite looping upon error
authorMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
Tue, 6 Mar 2012 17:32:09 +0000 (18:32 +0100)
committerMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
Tue, 6 Mar 2012 17:33:09 +0000 (18:33 +0100)
... and fix 'uninitialized' compilation warning as well.

gst/dccp/gstdccp.c

index 8a80db4..cbe7c46 100644 (file)
@@ -333,7 +333,7 @@ gst_dccp_socket_write (GstElement * element, int socket, const void *buf,
     size_t size, int packet_size)
 {
   size_t bytes_written = 0;
-  ssize_t wrote;
+  ssize_t wrote = 0;
 
 #ifndef G_OS_WIN32
   struct iovec iov;
@@ -362,8 +362,11 @@ gst_dccp_socket_write (GstElement * element, int socket, const void *buf,
     } while (wrote == SOCKET_ERROR && errorCode == EAGAIN);
 #endif
 
-    /* TODO print the send error */
-    bytes_written += wrote;
+    /* give up on error */
+    if (wrote >= 0)
+      bytes_written += wrote;
+    else
+      break;
   }
 
   if (wrote < 0)