udpsrc: drop dataless UDP packets
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.
https://bugzilla.gnome.org/show_bug.cgi?id=666644
Signed-off-by: John Ogness <john.ogness@linutronix.de>