# HG changeset patch # User reimar # Date 1253113943 0 # Node ID f08a788606d536c07ba0076e6f501306f56b1b41 # Parent 08c92d88d980d6065650fb9339ecd6a0ec1891be Fix overflow check insufficiently improved in r19840. It assumes that sizeof(vmd_frame) < 64k, otherwise an additional check to ensure sound_buffers <= UINT_MAX / sizeof(vmd_frame) would be necessary. diff -r 08c92d88d980 -r f08a788606d5 sierravmd.c --- a/sierravmd.c Wed Sep 16 12:26:59 2009 +0000 +++ b/sierravmd.c Wed Sep 16 15:12:23 2009 +0000 @@ -161,7 +161,7 @@ vmd->frame_table = NULL; sound_buffers = AV_RL16(&vmd->vmd_header[808]); raw_frame_table_size = vmd->frame_count * 6; - if(vmd->frame_count * vmd->frames_per_block >= (UINT_MAX - sound_buffers) / sizeof(vmd_frame)){ + if(vmd->frame_count * vmd->frames_per_block >= UINT_MAX / sizeof(vmd_frame) - sound_buffers){ av_log(s, AV_LOG_ERROR, "vmd->frame_count * vmd->frames_per_block too large\n"); return -1; }