From d93d0b0b2dc6f37b91f93c39d5bd4fdaecf3a5e8 Mon Sep 17 00:00:00 2001 From: Florian Best Date: Thu, 25 Sep 2025 12:43:19 +0200 Subject: [PATCH 1/2] fix: encode DEL (0x7f) control character --- encode.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/encode.go b/encode.go index 4ea9d23..8354f2a 100644 --- a/encode.go +++ b/encode.go @@ -170,7 +170,7 @@ func writeKey(w io.Writer, key interface{}) error { // functions it causes them to remove invalid key runes from strings or byte // slices respectively. func keyRuneFilter(r rune) rune { - if r <= ' ' || r == '=' || r == '"' || r == utf8.RuneError { + if r <= ' ' || r == '=' || r == '"' || r == 0x7f || r == utf8.RuneError { return -1 } return r From 11587aee9a27699805816e3c4f777b269039653e Mon Sep 17 00:00:00 2001 From: Florian Best Date: Thu, 25 Sep 2025 12:44:26 +0200 Subject: [PATCH 2/2] test: add test for DEL character encoding --- encode_test.go | 1 + 1 file changed, 1 insertion(+) diff --git a/encode_test.go b/encode_test.go index 4b6144b..c3afdd2 100644 --- a/encode_test.go +++ b/encode_test.go @@ -58,6 +58,7 @@ func TestEncodeKeyval(t *testing.T) { {key: "k", value: "\ufffd", want: `k="\ufffd"`}, {key: "k", value: []byte("\ufffd\x00"), want: `k="\ufffd\u0000"`}, {key: "k", value: []byte("\ufffd"), want: `k="\ufffd"`}, + {key: "k", value: []byte("\u007f"), want: `k="\u007f"`}, } for _, d := range data {