From 2ab1916fe9c09449b562dfa0e4671bb36f0fffe8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Se=C3=A1n=20C=20McCord?= Date: Sun, 1 Oct 2023 22:30:42 -0400 Subject: [PATCH] actually copy data to file --- server/server.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/server/server.go b/server/server.go index 46ed9e5..362c6fd 100644 --- a/server/server.go +++ b/server/server.go @@ -201,6 +201,21 @@ func (session *Session) Data(r io.Reader) error { } }() + n, err := io.Copy(f, r) + if err != nil { + session.log.Error("failed to receive message data to temporary data file", zap.Error(err)) + + return ErrBadGateway + } + + session.log.Sugar().Debugf("received message with %d bytes", n) + + if _, err := f.Seek(0, 0); err != nil { + session.log.Error("failed to seek to beginning of temporary data file", zap.Error(err)) + + return ErrBadGateway + } + _, action, err := session.rspam.BodyReadFrom(f) if err != nil { session.log.Error("rspamd failed to process message body", zap.Error(err))