From d20e071a4d50b92bce196040b151988f96985c87 Mon Sep 17 00:00:00 2001 From: CJ van den Berg Date: Thu, 21 Mar 2024 22:43:34 +0100 Subject: [PATCH] fix: don't fail to consume input iterator in cbor match more operations --- src/cbor.zig | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/cbor.zig b/src/cbor.zig index eb16b3d..ec99cff 100644 --- a/src/cbor.zig +++ b/src/cbor.zig @@ -606,7 +606,12 @@ fn matchArray(iter_: *[]const u8, arr: anytype, info: anytype) CborError!bool { inline for (info.fields) |f| { const value = @field(arr, f.name); if (isMore(value)) - return matchArrayMore(&iter, n); + if (try matchArrayMore(&iter, n)) { + iter_.* = iter; + return true; + } else { + return false; + }; if (n == 0) return false; const matched = try matchValue(&iter, @field(arr, f.name)); if (!matched) return false;