udpsrc: Make sure the sockaddr length used for recvfrom() is big enough.
authorPeter Kjellerstedt <pkj@axis.com>
Wed, 25 Feb 2009 10:35:31 +0000 (11:35 +0100)
committerPeter Kjellerstedt <pkj@axis.com>
Wed, 25 Feb 2009 11:52:37 +0000 (12:52 +0100)
Previously the sockaddr length used for recvfrom() was calculated as
sizeof (struct sockaddr). However, this is too little to hold an IPv6
address, so the full size of the gst_sockaddr union should be used
instead.

gst/udp/gstudpsrc.c

index 586f7c5706cce60c7c9b02eda28fdbb67e395572..5b4f6a3e37dc037e47388657d8f3615236f338d5 100644 (file)
@@ -481,7 +481,7 @@ no_select:
   pktsize = readsize;
 
   while (TRUE) {
-    slen = sizeof (struct sockaddr);
+    slen = sizeof (sa);
 #ifdef G_OS_WIN32
     ret = recvfrom (udpsrc->sock.fd, (char *) pktdata, pktsize, 0, &sa.sa,
         &slen);