+2025-12-15 Niels Möller <nisse@lysator.liu.se>
+
+ * base16-decode.c (base16_decode_update): Fix returned value on
+ failure, should be 0. Previous change accidentally returned -1
+ instead.
+ * base64-decode.c (base64_decode_update): Analogous fix. This
+ regression was reported by Robert Augusteijn.
+
2025-11-05 Niels Möller <nisse@lysator.liu.se>
* testsuite/slh-dsa-test.c (read_hex_file): Simplify, using
{
unsigned char usrc = src[i];
if (usrc >= 0x80)
- return -1;
+ return 0;
int digit = hex_decode_table[usrc];
if (digit == HEX_SPACE)
continue;
if (digit < 0 || done >= *dst_length)
- return -1;
+ return 0;
assert(digit < 0x10);
if (ctx->bits)
assert(data >= 0 && data < 0x40);
if (ctx->padding || (done >= *dst_length))
- return -1;
+ return 0;
ctx->word = ctx->word << 6 | data;
ctx->bits += 6;
}
break;
case TABLE_INVALID:
- return -1;
+ return 0;
case TABLE_SPACE:
continue;
case TABLE_END:
/* There can be at most two padding characters. */
if (!ctx->bits || ctx->padding > 2)
- return -1;
+ return 0;
if (ctx->word & ( (1<<ctx->bits) - 1))
/* We shouldn't have any leftover bits */
- return -1;
+ return 0;
ctx->padding++;
ctx->bits -= 2;