summaryrefslogtreecommitdiffstats
path: root/pb_encode.c
diff options
context:
space:
mode:
Diffstat (limited to 'pb_encode.c')
-rw-r--r--pb_encode.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/pb_encode.c b/pb_encode.c
index d6ba7e34..4aced3cb 100644
--- a/pb_encode.c
+++ b/pb_encode.c
@@ -94,6 +94,9 @@ static bool checkreturn encode_array(pb_ostream_t *stream, const pb_field_t *fie
if (count == 0)
return true;
+
+ if (count > field->array_size)
+ PB_RETURN_ERROR(stream, "array max size exceeded");
/* We always pack arrays if the datatype allows it. */
if (PB_LTYPE(field->type) <= PB_LTYPE_LAST_PACKABLE)