From 6ea1047a7f868796621f1ec9f7324f101e135733 Mon Sep 17 00:00:00 2001 From: Petteri Aimonen Date: Thu, 2 Mar 2017 22:14:00 +0200 Subject: [PATCH] Fix callback pointer corruption in proto3 mode (issue #249) --- pb_decode.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pb_decode.c b/pb_decode.c index a8cd61a..e2e90ca 100644 --- a/pb_decode.c +++ b/pb_decode.c @@ -780,7 +780,7 @@ static void pb_field_set_to_default(pb_field_iter_t *iter) else if (PB_ATYPE(type) == PB_ATYPE_STATIC) { bool init_data = true; - if (PB_HTYPE(type) == PB_HTYPE_OPTIONAL) + if (PB_HTYPE(type) == PB_HTYPE_OPTIONAL && iter->pSize != iter->pData) { /* Set has_field to false. Still initialize the optional field * itself also. */ -- 2.16.6