@@ -72,14 +72,8 @@ pub enum FlushError {
7272 Io ( #[ from] std:: io:: Error ) ,
7373 #[ error( "cid: {0}" ) ]
7474 Cid ( #[ from] cid:: Error ) ,
75- #[ error( "cbor input was not canonical (lval 24 with value < 24)" ) ]
76- HeaderLval24 ,
77- #[ error( "cbor input was not canonical (lval 25 with value <= MaxUint8)" ) ]
78- HeaderLval25 ,
79- #[ error( "cbor input was not canonical (lval 26 with value <= MaxUint16)" ) ]
80- HeaderLval26 ,
81- #[ error( "cbor input was not canonical (lval 27 with value <= MaxUint32)" ) ]
82- HeaderLval27 ,
75+ #[ error( "cbor input was not canonical (lval {0} with value < {1})" ) ]
76+ HeaderNotCanonical ( usize , & ' static str ) ,
8377 #[ error( "invalid header cbor_read_header_buf" ) ]
8478 HeaderInvalid ,
8579 #[ error( "expected cbor type byte string in input" ) ]
@@ -112,28 +106,28 @@ fn cbor_read_header_buf<B: Read>(
112106 } else if low == 24 {
113107 let val = br. read_u8 ( ) ?;
114108 if val < 24 {
115- return Err ( FlushError :: HeaderLval24 ) ;
109+ return Err ( FlushError :: HeaderNotCanonical ( 24 , "24" ) ) ;
116110 }
117111 Ok ( ( maj, val as usize ) )
118112 } else if low == 25 {
119113 br. read_exact ( & mut scratch[ ..2 ] ) ?;
120114 let val = BigEndian :: read_u16 ( & scratch[ ..2 ] ) ;
121115 if val <= u8:: MAX as u16 {
122- return Err ( FlushError :: HeaderLval25 ) ;
116+ return Err ( FlushError :: HeaderNotCanonical ( 25 , "MaxUint8" ) ) ;
123117 }
124118 Ok ( ( maj, val as usize ) )
125119 } else if low == 26 {
126120 br. read_exact ( & mut scratch[ ..4 ] ) ?;
127121 let val = BigEndian :: read_u32 ( & scratch[ ..4 ] ) ;
128122 if val <= u16:: MAX as u32 {
129- return Err ( FlushError :: HeaderLval26 ) ;
123+ return Err ( FlushError :: HeaderNotCanonical ( 26 , "MaxUint16" ) ) ;
130124 }
131125 Ok ( ( maj, val as usize ) )
132126 } else if low == 27 {
133127 br. read_exact ( & mut scratch[ ..8 ] ) ?;
134128 let val = BigEndian :: read_u64 ( & scratch[ ..8 ] ) ;
135129 if val <= u32:: MAX as u64 {
136- return Err ( FlushError :: HeaderLval27 ) ;
130+ return Err ( FlushError :: HeaderNotCanonical ( 27 , "MaxUint32" ) ) ;
137131 }
138132 Ok ( ( maj, val as usize ) )
139133 } else {
0 commit comments