From: Chris Duncan Date: Sat, 9 Aug 2025 07:11:11 +0000 (-0700) Subject: Throw on invalid base32 characters during conversion. X-Git-Tag: v0.10.5~41^2~154 X-Git-Url: https://git.codecow.com/?a=commitdiff_plain;h=aa799d4d9b1186be0e48367715e34c665ee7404c;p=libnemo.git Throw on invalid base32 characters during conversion. --- diff --git a/src/lib/convert.ts b/src/lib/convert.ts index 5b20a05..23624a0 100644 --- a/src/lib/convert.ts +++ b/src/lib/convert.ts @@ -17,10 +17,15 @@ export class base32 { : 8 - leftover let bits = 0 let value = 0 + let letter = -1 let index = 0 let output = new Uint8Array(Math.ceil((base32.length * 5) / 8)) for (let i = 0; i < base32.length; i++) { - value = (value << 5) | ALPHABET.indexOf(base32[i]) + letter = ALPHABET.indexOf(base32[i]) + if (letter < 0) { + throw new RangeError('Invalid base32 character', { cause: base32[i] }) + } + value = (value << 5) | letter bits += 5 if (bits >= 8) { output[index++] = (value >>> (bits + offset - 8)) & 255