@ -83,7 +83,7 @@ typedef struct ShortenContext {
GetBitContext gb ;
int min_framesize , max_framesize ;
int channels ;
unsigned channels ;
int32_t * decoded [ MAX_CHANNELS ] ;
int32_t * decoded_base [ MAX_CHANNELS ] ;
@ -339,7 +339,11 @@ static int read_header(ShortenContext *s)
s - > internal_ftype = get_uint ( s , TYPESIZE ) ;
s - > channels = get_uint ( s , CHANSIZE ) ;
if ( s - > channels < = 0 | | s - > channels > MAX_CHANNELS ) {
if ( ! s - > channels ) {
av_log ( s - > avctx , AV_LOG_ERROR , " No channels reported \n " ) ;
return AVERROR_INVALIDDATA ;
}
if ( s - > channels > MAX_CHANNELS ) {
av_log ( s - > avctx , AV_LOG_ERROR , " too many channels: %d \n " , s - > channels ) ;
s - > channels = 0 ;
return AVERROR_INVALIDDATA ;
@ -348,7 +352,8 @@ static int read_header(ShortenContext *s)
/* get blocksize if version > 0 */
if ( s - > version > 0 ) {
int skip_bytes , blocksize ;
int skip_bytes ;
unsigned blocksize ;
blocksize = get_uint ( s , av_log2 ( DEFAULT_BLOCK_SIZE ) ) ;
if ( ! blocksize | | blocksize > MAX_BLOCKSIZE ) {
@ -501,7 +506,7 @@ static int shorten_decode_frame(AVCodecContext *avctx, void *data,
s - > bitshift = get_ur_golomb_shorten ( & s - > gb , BITSHIFTSIZE ) ;
break ;
case FN_BLOCKSIZE : {
int blocksize = get_uint ( s , av_log2 ( s - > blocksize ) ) ;
unsigned blocksize = get_uint ( s , av_log2 ( s - > blocksize ) ) ;
if ( blocksize > s - > blocksize ) {
av_log ( avctx , AV_LOG_ERROR ,
" Increasing block size is not supported \n " ) ;