@ -107,7 +107,8 @@ int ff_pnm_decode_header(AVCodecContext *avctx, PNMContext * const s)
}
}
}
}
/* check that all tags are present */
/* check that all tags are present */
if ( w < = 0 | | h < = 0 | | maxval < = 0 | | depth < = 0 | | tuple_type [ 0 ] = = ' \0 ' | | av_image_check_size ( w , h , 0 , avctx ) | | s - > bytestream > = s - > bytestream_end )
if ( w < = 0 | | h < = 0 | | maxval < = 0 | | maxval > UINT16_MAX | | depth < = 0 | | tuple_type [ 0 ] = = ' \0 ' | |
av_image_check_size ( w , h , 0 , avctx ) | | s - > bytestream > = s - > bytestream_end )
return AVERROR_INVALIDDATA ;
return AVERROR_INVALIDDATA ;
avctx - > width = w ;
avctx - > width = w ;
@ -159,7 +160,7 @@ int ff_pnm_decode_header(AVCodecContext *avctx, PNMContext * const s)
if ( avctx - > pix_fmt ! = AV_PIX_FMT_MONOWHITE & & avctx - > pix_fmt ! = AV_PIX_FMT_MONOBLACK ) {
if ( avctx - > pix_fmt ! = AV_PIX_FMT_MONOWHITE & & avctx - > pix_fmt ! = AV_PIX_FMT_MONOBLACK ) {
pnm_get ( s , buf1 , sizeof ( buf1 ) ) ;
pnm_get ( s , buf1 , sizeof ( buf1 ) ) ;
s - > maxval = atoi ( buf1 ) ;
s - > maxval = atoi ( buf1 ) ;
if ( s - > maxval < = 0 ) {
if ( s - > maxval < = 0 | | s - > maxval > UINT16_MAX ) {
av_log ( avctx , AV_LOG_ERROR , " Invalid maxval: %d \n " , s - > maxval ) ;
av_log ( avctx , AV_LOG_ERROR , " Invalid maxval: %d \n " , s - > maxval ) ;
s - > maxval = 255 ;
s - > maxval = 255 ;
}
}