tree f8a75b9d0e8c7762b2e877f41c240509785b0657
parent e1f25e4dd6ea9f0e8f52bc1c68fbdf5d33e1c675
author Petteri Aimonen <jpa@git.mail.kapsi.fi> 1606248146 +0200
committer Petteri Aimonen <jpa@git.mail.kapsi.fi> 1606248729 +0200

Fix memory leak with oneofs and PB_ENABLE_MALLOC (#615)

Nanopb would leak memory when all of the following conditions were true:
- PB_ENABLE_MALLOC is defined at the compile time
- Message definitions contains an oneof field,
  the oneof contains a static submessage, and
  the static submessage contains a pointer field.
- Data being decoded contains two values for the submessage.

The logic in pb_release_union_field would detect that the same
submessage occurs twice, and wouldn't release it because keeping
the old values is necessary to match the C++ library behavior
regarding message merges.

But then decode_static_field() would go to memset() the whole
submessage to zero, because it unconditionally assumed it to
be uninitialized memory. This would normally happen when the
contents of the union field is switched to a different oneof
item, instead of merging with the same one.

This commit changes it so that the field is memset() only when
`which_field` contains a different tag. Also the setting of the
default values for the submessage was moved to decode_static_field()
so that it wouldn't overwrite the values that must be merged.

Test cases must still be extended to cover this problem.
