From b582bc9bf699ee76f8634c3c7b7aa1ec0a0afb08 Mon Sep 17 00:00:00 2001 From: Petteri Aimonen Date: Tue, 31 Jul 2012 19:12:57 +0300 Subject: Fix bug in decoder with packed arrays. Update issue 23 Status: FixedInGit --- pb_decode.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pb_decode.c b/pb_decode.c index 18941cbe..6d3a0b6c 100644 --- a/pb_decode.c +++ b/pb_decode.c @@ -288,6 +288,7 @@ static bool checkreturn decode_field(pb_istream_t *stream, pb_wire_type_t wire_t && PB_LTYPE(iter->current->type) <= PB_LTYPE_LAST_PACKABLE) { /* Packed array */ + bool status; size_t *size = (size_t*)iter->pSize; pb_istream_t substream; if (!make_string_substream(stream, &substream)) @@ -300,7 +301,9 @@ static bool checkreturn decode_field(pb_istream_t *stream, pb_wire_type_t wire_t return false; (*size)++; } - return (substream.bytes_left == 0); + status = (substream.bytes_left == 0); + stream->state = substream.state; + return status; } else { -- cgit 1.2.3-korg