avtpsrc: Retry receive with same buffer size
authorTimo Wischer <timo.wischer@de.bosch.com>
Wed, 6 Oct 2021 14:00:56 +0000 (16:00 +0200)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Tue, 26 Oct 2021 22:46:46 +0000 (22:46 +0000)
Without this patch in case of a retry recv() will be called with a
negative size argument.

Signed-off-by: Timo Wischer <timo.wischer@de.bosch.com>
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1078>

subprojects/gst-plugins-bad/ext/avtp/gstavtpsrc.c

index a8ec28a..07a571d 100644 (file)
@@ -272,6 +272,7 @@ gst_avtp_src_fill (GstPushSrc * pushsrc, GstBuffer * buffer)
   GstMapInfo map;
   gsize buffer_size;
   ssize_t n = MAX_AVTPDU_SIZE;
+  ssize_t received = -1;
   GstAvtpSrc *avtpsrc = GST_AVTP_SRC (pushsrc);
 
   buffer_size = gst_buffer_get_size (buffer);
@@ -290,8 +291,8 @@ gst_avtp_src_fill (GstPushSrc * pushsrc, GstBuffer * buffer)
 
 retry:
   errno = 0;
-  n = recv (avtpsrc->sk_fd, map.data, n, 0);
-  if (n < 0) {
+  received = recv (avtpsrc->sk_fd, map.data, n, 0);
+  if (received < 0) {
     if (errno == EINTR) {
       goto retry;
     }