Skip to content

Commit

Permalink
Fix segment fault for proto3 optional (protocolbuffers#7805)
Browse files Browse the repository at this point in the history
* Fix segment fault for proto3 optional

 Fixes protocolbuffers#7801
  • Loading branch information
anandolee authored and acozzette committed Aug 14, 2020
1 parent 7a91c5f commit bd9e9d3
Showing 1 changed file with 2 additions and 1 deletion.
3 changes: 2 additions & 1 deletion src/google/protobuf/generated_message_reflection.cc
Expand Up @@ -854,7 +854,7 @@ void Reflection::ClearField(Message* message,
}
case FieldDescriptor::CPPTYPE_MESSAGE:
if (!schema_.HasHasbits()) {
if (schema_.HasBitIndex(field) == -1) {
// Proto3 does not have has-bits and we need to set a message field
// to nullptr in order to indicate its un-presence.
if (GetArena(message) == nullptr) {
Expand Down Expand Up @@ -2048,6 +2048,7 @@ void Reflection::ClearBit(Message* message,
return;
}
const uint32 index = schema_.HasBitIndex(field);
if (index == -1) return;
MutableHasBits(message)[index / 32] &=
~(static_cast<uint32>(1) << (index % 32));
}
Expand Down

0 comments on commit bd9e9d3

Please sign in to comment.