From ed2b5e6cfc363b483df9975d972ebf2a3f57ccc2 Mon Sep 17 00:00:00 2001 From: Mathieu Duponchelle Date: Thu, 8 Oct 2020 18:54:55 +0200 Subject: [PATCH] rtpulpfec: fix potential alignment issue in xor function https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/753#note_646453 for context Part-of: --- gst/rtp/rtpulpfeccommon.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/gst/rtp/rtpulpfeccommon.c b/gst/rtp/rtpulpfeccommon.c index 7c6bf5876b..25b2f00f14 100644 --- a/gst/rtp/rtpulpfeccommon.c +++ b/gst/rtp/rtpulpfeccommon.c @@ -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); }