Fix std/cbor meta.ri decoding F8XX for small XX
Updates https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=24819
diff --git a/release/c/wuffs-unsupported-snapshot.c b/release/c/wuffs-unsupported-snapshot.c
index 6e58bbc..4b75f86 100644
--- a/release/c/wuffs-unsupported-snapshot.c
+++ b/release/c/wuffs-unsupported-snapshot.c
@@ -17239,6 +17239,11 @@
goto label__goto_parsed_a_leaf_value__break;
} else if (v_c_minor == 24) {
if (v_string_length < 24) {
+ if ( ! (iop_a_src > io1_a_src)) {
+ status = wuffs_base__make_status(wuffs_cbor__error__internal_error_inconsistent_i_o);
+ goto exit;
+ }
+ (iop_a_src--, wuffs_base__make_empty_struct());
goto label__goto_fail__break;
}
*iop_a_dst++ = wuffs_base__make_token(
diff --git a/std/cbor/decode_cbor.wuffs b/std/cbor/decode_cbor.wuffs
index c58234f..b2aaf24 100644
--- a/std/cbor/decode_cbor.wuffs
+++ b/std/cbor/decode_cbor.wuffs
@@ -623,6 +623,10 @@
} else if c_minor == 0x18 {
if string_length < 0x18 {
+ if not args.src.can_undo_byte() {
+ return "#internal error: inconsistent I/O"
+ }
+ args.src.undo_byte!()
break.goto_fail
}
args.dst.write_simple_token_fast!(