fix basic auth base64 encoding length calculation
This commit is contained in:
parent
635a5b55dd
commit
dc96dd5549
10
src/lib.rs
10
src/lib.rs
|
@ -99,11 +99,13 @@ impl Forgejo {
|
||||||
password,
|
password,
|
||||||
mfa,
|
mfa,
|
||||||
} => {
|
} => {
|
||||||
let len = (((username.len() + password.len() + 1)
|
let unencoded_len = username.len() + password.len() + 1;
|
||||||
|
let unpadded_len = unencoded_len
|
||||||
.checked_mul(4)
|
.checked_mul(4)
|
||||||
.ok_or(ForgejoError::AuthTooLong)?)
|
.ok_or(ForgejoError::AuthTooLong)?
|
||||||
/ 3)
|
.div_ceil(3);
|
||||||
+ 1;
|
// round up to next multiple of 4, to account for padding
|
||||||
|
let len = unpadded_len.div_ceil(4) * 4;
|
||||||
let mut bytes = vec![0; len];
|
let mut bytes = vec![0; len];
|
||||||
|
|
||||||
// panic safety: len cannot be zero
|
// panic safety: len cannot be zero
|
||||||
|
|
Loading…
Reference in a new issue