@@ -238,19 +238,14 @@ pub(crate) fn read_extended_header<R: Read>(
238
238
) -> Result < WebPExtendedInfo , DecodingError > {
239
239
let chunk_flags = reader. read_u8 ( ) ?;
240
240
241
- let reserved_first = chunk_flags & 0b11000000 ;
242
241
let icc_profile = chunk_flags & 0b00100000 != 0 ;
243
242
let alpha = chunk_flags & 0b00010000 != 0 ;
244
243
let exif_metadata = chunk_flags & 0b00001000 != 0 ;
245
244
let xmp_metadata = chunk_flags & 0b00000100 != 0 ;
246
245
let animation = chunk_flags & 0b00000010 != 0 ;
247
- let reserved_second = chunk_flags & 0b00000001 ;
248
246
249
- let reserved_third = read_3_bytes ( reader) ?;
250
-
251
- if reserved_first != 0 || reserved_second != 0 || reserved_third != 0 {
252
- return Err ( DecodingError :: ReservedBitSet ) ;
253
- }
247
+ // reserved bytes are ignored
248
+ let _reserved_bytes = read_3_bytes ( reader) ?;
254
249
255
250
let canvas_width = read_3_bytes ( reader) ? + 1 ;
256
251
let canvas_height = read_3_bytes ( reader) ? + 1 ;
@@ -304,19 +299,14 @@ pub(crate) fn read_alpha_chunk<R: BufRead>(
304
299
) -> Result < AlphaChunk , DecodingError > {
305
300
let info_byte = reader. read_u8 ( ) ?;
306
301
307
- let reserved = info_byte & 0b11000000 ;
308
302
let preprocessing = ( info_byte & 0b00110000 ) >> 4 ;
309
303
let filtering = ( info_byte & 0b00001100 ) >> 2 ;
310
304
let compression = info_byte & 0b00000011 ;
311
305
312
- if reserved != 0 {
313
- return Err ( DecodingError :: ReservedBitSet ) ;
314
- }
315
-
316
306
let preprocessing = match preprocessing {
317
307
0 => false ,
318
308
1 => true ,
319
- _ => return Err ( DecodingError :: ReservedBitSet ) ,
309
+ _ => return Err ( DecodingError :: InvalidAlphaPreprocessing ) ,
320
310
} ;
321
311
322
312
let filtering_method = match filtering {
0 commit comments