[Bug 666644] New: udpsrc: infinite loop on dataless UDP packets

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Wed Dec 21 04:36:32 PST 2011


https://bugzilla.gnome.org/show_bug.cgi?id=666644
  GStreamer | gst-plugins-good | git

           Summary: udpsrc: infinite loop on dataless UDP packets
    Classification: Platform
           Product: GStreamer
           Version: git
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: major
          Priority: Normal
         Component: gst-plugins-good
        AssignedTo: gstreamer-bugs at lists.freedesktop.org
        ReportedBy: john.ogness at linutronix.de
         QAContact: gstreamer-bugs at lists.freedesktop.org
     GNOME version: ---


Created an attachment (id=204028)
 View: https://bugzilla.gnome.org/attachment.cgi?id=204028
 Review: https://bugzilla.gnome.org/review?bug=666644&attachment=204028

this patch avoids the infinite loop

It is allowed to send/receive UDP packets with no data. When such a packet is
available, select() will return with success but ioctl(FIONREAD) will return 0.
But a read() must still occur in order to clear off the UDP packet from the
queue.

This patch will read the dataless packet from the socket. If select() was woken
for other reasons (and FIONREAD returns 0), this may result in a UDP packet
getting accidentally dropped. But since UDP is not reliable, this is
acceptable.

NOTE: This patch fixes a nasty bug where sending a dataless UDP packet to a
udpsrc instance will cause an infinite loop.

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list