alac: fix check for valid max_samples_per_frame
authorJustin Ruggles <justin.ruggles@gmail.com>
Mon, 9 Jul 2012 17:23:22 +0000 (13:23 -0400)
committerJustin Ruggles <justin.ruggles@gmail.com>
Thu, 19 Jul 2012 17:26:47 +0000 (13:26 -0400)
libavcodec/alac.c

index db83796..1fc4dc5 100644 (file)
@@ -511,9 +511,9 @@ static int alac_set_info(ALACContext *alac)
     bytestream2_skipu(&gb, 12); // size:4, alac:4, version:4
 
     alac->max_samples_per_frame = bytestream2_get_be32u(&gb);
-    if (alac->max_samples_per_frame >= UINT_MAX/4){
-        av_log(alac->avctx, AV_LOG_ERROR,
-               "max_samples_per_frame too large\n");
+    if (!alac->max_samples_per_frame || alac->max_samples_per_frame > INT_MAX) {
+        av_log(alac->avctx, AV_LOG_ERROR, "max samples per frame invalid: %u\n",
+               alac->max_samples_per_frame);
         return AVERROR_INVALIDDATA;
     }
     bytestream2_skipu(&gb, 1);  // compatible version