From bf3f7ad6b8575cb97c4cdfa882bd4429150e111e Mon Sep 17 00:00:00 2001 From: Mahad Zaryab Date: Sat, 12 Oct 2024 18:16:37 -0400 Subject: [PATCH] Add Test For Invalid Key With Non String Attribute Signed-off-by: Mahad Zaryab --- cmd/jaeger/internal/sanitizer/utf8.go | 2 +- cmd/jaeger/internal/sanitizer/utf8_test.go | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/cmd/jaeger/internal/sanitizer/utf8.go b/cmd/jaeger/internal/sanitizer/utf8.go index c06619a9241..1ec7a4c5194 100644 --- a/cmd/jaeger/internal/sanitizer/utf8.go +++ b/cmd/jaeger/internal/sanitizer/utf8.go @@ -83,7 +83,7 @@ func sanitizeAttributes(attributes pcommon.Map) { case pcommon.ValueTypeBytes: sanitized = append(sanitized, v.Bytes().AsRaw()...) default: - sanitized = append(sanitized, []byte(v.Str())...) + sanitized = append(sanitized, []byte(v.AsString())...) } attributes.Remove(k) diff --git a/cmd/jaeger/internal/sanitizer/utf8_test.go b/cmd/jaeger/internal/sanitizer/utf8_test.go index c26ee73d74e..4d9c1b06895 100644 --- a/cmd/jaeger/internal/sanitizer/utf8_test.go +++ b/cmd/jaeger/internal/sanitizer/utf8_test.go @@ -229,3 +229,22 @@ func TestUTF8Sanitizer_DoesNotSanitizeNonStringAttributeValue(t *testing.T) { require.True(t, ok) require.EqualValues(t, 1, value.Int()) } + +func TestUTF8Sanitizer_SanitizesNonStringAttributeValueWithInvalidKey(t *testing.T) { + traces := ptrace.NewTraces() + traces. + ResourceSpans(). + AppendEmpty(). + Resource(). + Attributes().PutInt(invalidUTF8(), 1) + sanitizer := NewUTF8Sanitizer() + sanitized := sanitizer(traces) + value, ok := sanitized. + ResourceSpans(). + At(0). + Resource(). + Attributes(). + Get("invalid-tag-key") + require.True(t, ok) + require.EqualValues(t, getBytesValueFromString(fmt.Sprintf("%s:1", invalidUTF8())), value) +}