Skip to content

Commit 253ed25

Browse files
committed
csigrpc: only overwrite secret fields if already set
The previous version was adding "secrets: *** strippped ***" even when the "secrets" field was unset.
1 parent 0f60cbc commit 253ed25

File tree

2 files changed

+5
-1
lines changed

2 files changed

+5
-1
lines changed

pkg/csigrpc/secrets.go

+4-1
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,10 @@ func strip(parsed interface{}, msg interface{}) {
9393
for _, field := range fields {
9494
ex, err := proto.GetExtension(field.Options, csi.E_CsiSecret)
9595
if err == nil && ex != nil && *ex.(*bool) {
96-
parsedFields[field.GetName()] = "***stripped***"
96+
// Overwrite only if already set.
97+
if _, ok := parsedFields[field.GetName()]; ok {
98+
parsedFields[field.GetName()] = "***stripped***"
99+
}
97100
} else if field.GetType() == protobuf.FieldDescriptorProto_TYPE_MESSAGE {
98101
// When we get here,
99102
// the type name is something like ".csi.v1.CapacityRange" (leading dot!)

pkg/csigrpc/secrets_test.go

+1
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ func TestStripSecrets(t *testing.T) {
7070
{"hello world", `"hello world"`},
7171
{true, "true"},
7272
{false, "false"},
73+
{&csi.CreateVolumeRequest{}, `{}`},
7374
{createVolume, `{"accessibility_requirements":{"requisite":[{"segments":{"foo":"bar","x":"y"}},{"segments":{"a":"b"}}]},"capacity_range":{"required_bytes":1024},"name":"foo","secrets":"***stripped***","volume_capabilities":[{"AccessType":{"Mount":{"fs_type":"ext4"}}}]}`},
7475

7576
// There is currently no test case that can verify

0 commit comments

Comments
 (0)