summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pb_decode.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/pb_decode.c b/pb_decode.c
index a8cd61a7..e2e90caa 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. */