rtpulpfec: fix potential alignment issue in xor function
authorMathieu Duponchelle <mathieu@centricular.com>
Thu, 8 Oct 2020 16:54:55 +0000 (18:54 +0200)
committerGStreamer Merge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Thu, 8 Oct 2020 22:22:18 +0000 (22:22 +0000)
https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/753#note_646453
for context

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/753>

gst/rtp/rtpulpfeccommon.c

index 7c6bf58..25b2f00 100644 (file)
@@ -123,7 +123,13 @@ _xor_mem (guint8 * restrict dst, const guint8 * restrict src, gsize length)
   guint i;
 
   for (i = 0; i < (length / sizeof (guint64)); ++i) {
-    *((guint64 *) dst) ^= *((const guint64 *) src);
+#if G_BYTE_ORDER == G_LITTLE_ENDIAN
+    GST_WRITE_UINT64_LE (dst,
+        GST_READ_UINT64_LE (dst) ^ GST_READ_UINT64_LE (src));
+#else
+    GST_WRITE_UINT64_BE (dst,
+        GST_READ_UINT64_BE (dst) ^ GST_READ_UINT64_BE (src));
+#endif
     dst += sizeof (guint64);
     src += sizeof (guint64);
   }