Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions source/common/protobuf/utility.cc
Original file line number Diff line number Diff line change
Expand Up @@ -774,9 +774,9 @@ bool redactOpaque(Protobuf::Message* message, bool ancestor_is_sensitive,
const auto* reflection = message->GetReflection();
const auto* type_url_field_descriptor = opaque_descriptor->FindFieldByName("type_url");
const auto* value_field_descriptor = opaque_descriptor->FindFieldByName("value");
ASSERT(type_url_field_descriptor != nullptr && value_field_descriptor != nullptr &&
reflection->HasField(*message, type_url_field_descriptor));
if (!reflection->HasField(*message, value_field_descriptor)) {
ASSERT(type_url_field_descriptor != nullptr && value_field_descriptor != nullptr);
if (!reflection->HasField(*message, type_url_field_descriptor) ||
!reflection->HasField(*message, value_field_descriptor)) {
Comment thread
Shikugawa marked this conversation as resolved.
return true;
}

Expand Down
14 changes: 14 additions & 0 deletions test/common/protobuf/utility_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1001,6 +1001,20 @@ type_url: type.googleapis.com/envoy.unknown.Message
EXPECT_TRUE(TestUtility::protoEqual(expected, actual));
}

TEST_F(ProtobufUtilityTest, RedactEmptyTypeUrlTypedStruct) {
udpa::type::v1::TypedStruct actual;
MessageUtil::redact(actual);
udpa::type::v1::TypedStruct expected = actual;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here and the test below: expected gets a copy of actual after it's been (potentially) modified by the call to MessageUtil::redact. The equality comparison on the next line will always return true in this case. You probably want to reverse the order of lines 1006 and 1007? I think the return value of MessageUtil::redact should be verified too.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ah sorry. I overlooked.

EXPECT_TRUE(TestUtility::protoEqual(expected, actual));
}

TEST_F(ProtobufUtilityTest, RedactEmptyTypeUrlAny) {
ProtobufWkt::Any actual;
MessageUtil::redact(actual);
ProtobufWkt::Any expected = actual;
EXPECT_TRUE(TestUtility::protoEqual(expected, actual));
}

// Deeply-nested opaque protos (`Any` and `TypedStruct`), which are reified using the
// `DynamicMessageFactory`, should be redacted correctly.
TEST_F(ProtobufUtilityTest, RedactDeeplyNestedOpaqueProtos) {
Expand Down