typefind: Use GST_READ_UINT32 macros

Avoids undefined behaviour with shifting
This commit is contained in:
Edward Hervey 2017-10-30 11:10:11 +01:00 committed by Edward Hervey
parent 7b5d97e9c3
commit 5bcc1e2b57

View file

@ -264,9 +264,9 @@ check_utf32 (const guint8 * data, gint len, gint endianness)
while (len > 3) { while (len > 3) {
guint32 v; guint32 v;
if (endianness == G_BIG_ENDIAN) if (endianness == G_BIG_ENDIAN)
v = (data[0] << 24) | (data[1] << 16) | (data[2] << 8) | data[3]; v = GST_READ_UINT32_BE (data);
else else
v = (data[3] << 24) | (data[2] << 16) | (data[1] << 8) | data[0]; v = GST_READ_UINT32_LE (data);
if (v >= 0x10FFFF) if (v >= 0x10FFFF)
return FALSE; return FALSE;
data += 4; data += 4;