[0.10] gst-plugins-bad: mpegtsmux: Trivial bug fix. Don' t copy data from an uninited buffer.

Tim Müller tpm at kemper.freedesktop.org
Mon Feb 13 08:33:24 PST 2012


Module: gst-plugins-bad
Branch: 0.10
Commit: c7fa951e3d653556c6b314934c310b78c80fd30b
URL:    http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=c7fa951e3d653556c6b314934c310b78c80fd30b

Author: Jan Schmidt <thaytan at noraisin.net>
Date:   Mon Feb 13 23:04:12 2012 +1100

mpegtsmux: Trivial bug fix. Don't copy data from an uninited buffer.

Fixes issue with garbage data in stream headers in caps.

---

 gst/mpegtsmux/mpegtsmux.c |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/gst/mpegtsmux/mpegtsmux.c b/gst/mpegtsmux/mpegtsmux.c
index 28e02e0..a243e40 100644
--- a/gst/mpegtsmux/mpegtsmux.c
+++ b/gst/mpegtsmux/mpegtsmux.c
@@ -1104,11 +1104,11 @@ new_packet_m2ts (MpegTsMux * mux, guint8 * data, guint len, gint64 new_pcr)
     return FALSE;
   }
 
-  new_packet_common_init (mux, buf, data, len);
-
   /* copies the TS data of 188 bytes to the m2ts buffer at an offset
      of 4 bytes to leave space for writing the timestamp later */
   memcpy (GST_BUFFER_DATA (buf) + 4, data, len);
+  /* After copying the data into the buffer, do other common init (flags and streamheaders) */
+  new_packet_common_init (mux, buf, data, len);
 
   if (new_pcr < 0) {
     /* If theres no pcr in current ts packet then just add the packet
@@ -1215,9 +1215,10 @@ new_packet_normal_ts (MpegTsMux * mux, guint8 * data, guint len, gint64 new_pcr)
     return FALSE;
   }
 
+  memcpy (GST_BUFFER_DATA (buf), data, len);
+  /* After copying the data into the buffer, do other common init (flags and streamheaders) */
   new_packet_common_init (mux, buf, data, len);
 
-  memcpy (GST_BUFFER_DATA (buf), data, len);
   GST_BUFFER_TIMESTAMP (buf) = mux->last_ts;
 
   ret = gst_pad_push (mux->srcpad, buf);



More information about the gstreamer-commits mailing list