@@ -72,14 +72,8 @@ pub enum FlushError {
72
72
Io ( #[ from] std:: io:: Error ) ,
73
73
#[ error( "cid: {0}" ) ]
74
74
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 ) ,
83
77
#[ error( "invalid header cbor_read_header_buf" ) ]
84
78
HeaderInvalid ,
85
79
#[ error( "expected cbor type byte string in input" ) ]
@@ -112,28 +106,28 @@ fn cbor_read_header_buf<B: Read>(
112
106
} else if low == 24 {
113
107
let val = br. read_u8 ( ) ?;
114
108
if val < 24 {
115
- return Err ( FlushError :: HeaderLval24 ) ;
109
+ return Err ( FlushError :: HeaderNotCanonical ( 24 , "24" ) ) ;
116
110
}
117
111
Ok ( ( maj, val as usize ) )
118
112
} else if low == 25 {
119
113
br. read_exact ( & mut scratch[ ..2 ] ) ?;
120
114
let val = BigEndian :: read_u16 ( & scratch[ ..2 ] ) ;
121
115
if val <= u8:: MAX as u16 {
122
- return Err ( FlushError :: HeaderLval25 ) ;
116
+ return Err ( FlushError :: HeaderNotCanonical ( 25 , "MaxUint8" ) ) ;
123
117
}
124
118
Ok ( ( maj, val as usize ) )
125
119
} else if low == 26 {
126
120
br. read_exact ( & mut scratch[ ..4 ] ) ?;
127
121
let val = BigEndian :: read_u32 ( & scratch[ ..4 ] ) ;
128
122
if val <= u16:: MAX as u32 {
129
- return Err ( FlushError :: HeaderLval26 ) ;
123
+ return Err ( FlushError :: HeaderNotCanonical ( 26 , "MaxUint16" ) ) ;
130
124
}
131
125
Ok ( ( maj, val as usize ) )
132
126
} else if low == 27 {
133
127
br. read_exact ( & mut scratch[ ..8 ] ) ?;
134
128
let val = BigEndian :: read_u64 ( & scratch[ ..8 ] ) ;
135
129
if val <= u32:: MAX as u64 {
136
- return Err ( FlushError :: HeaderLval27 ) ;
130
+ return Err ( FlushError :: HeaderNotCanonical ( 27 , "MaxUint32" ) ) ;
137
131
}
138
132
Ok ( ( maj, val as usize ) )
139
133
} else {
0 commit comments