From f79a42ff868b3d85ab19e8e174515461464b1212 Mon Sep 17 00:00:00 2001 From: Lukasz Janyst Date: Mon, 23 May 2022 13:05:33 +0200 Subject: [PATCH] peroxide: Fix parsing of recursive multipart messages Make sure to not mix up parent and child part boundary markers when the clild marker is a suffix of the parent marker. --- pkg/message/scanner.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/message/scanner.go b/pkg/message/scanner.go index 2949185..27dc3ac 100644 --- a/pkg/message/scanner.go +++ b/pkg/message/scanner.go @@ -86,7 +86,7 @@ func (s *partScanner) readToBoundary() ([]byte, bool, error) { case bytes.HasPrefix(bytes.TrimSpace(line), []byte("--"+s.boundary)): return bytes.TrimSuffix(bytes.TrimSuffix(res, []byte("\n")), []byte("\r")), true, nil - case bytes.HasSuffix(bytes.TrimSpace(line), []byte(s.boundary+"--")): + case bytes.Compare(bytes.TrimSpace(line), []byte("--"+s.boundary+"--")) == 0: return bytes.TrimSuffix(bytes.TrimSuffix(res, []byte("\n")), []byte("\r")), false, nil default: