]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/atrac3.c
atrac3: avoid oversized shifting in decode_bytes()
[ffmpeg] / libavcodec / atrac3.c
index da0bff0bf3ef2eaca3c67a2480d8eb4f620ba743..a52c5c618abe5827e2e7111fb8c5df994e3c36e1 100644 (file)
@@ -163,7 +163,10 @@ static int decode_bytes(const uint8_t *input, uint8_t *out, int bytes)
 
     off = (intptr_t)input & 3;
     buf = (const uint32_t *)(input - off);
-    c   = av_be2ne32((0x537F6103 >> (off * 8)) | (0x537F6103 << (32 - (off * 8))));
+    if (off)
+        c = av_be2ne32((0x537F6103U >> (off * 8)) | (0x537F6103U << (32 - (off * 8))));
+    else
+        c = av_be2ne32(0x537F6103U);
     bytes += 3 + off;
     for (i = 0; i < bytes / 4; i++)
         output[i] = c ^ buf[i];