From 7cd4866c89b815b467b3ed9c714b6d7e1dad2821 Mon Sep 17 00:00:00 2001 From: Alex Dadgar Date: Mon, 20 Jun 2016 13:14:43 -0700 Subject: [PATCH] Make line copy to avoid being overriden by subsequent scans --- client/driver/logging/syslog_parser_unix.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/client/driver/logging/syslog_parser_unix.go b/client/driver/logging/syslog_parser_unix.go index 3cda8bb2e6f3..92fe70e021bb 100644 --- a/client/driver/logging/syslog_parser_unix.go +++ b/client/driver/logging/syslog_parser_unix.go @@ -52,9 +52,15 @@ func NewDockerLogParser(logger *log.Logger) *DockerLogParser { func (d *DockerLogParser) Parse(line []byte) *SyslogMessage { pri, _, _ := d.parsePriority(line) msgIdx := d.logContentIndex(line) + + // Create a copy of the line so that subsequent Scans do not override the + // message + lineCopy := make([]byte, len(line[msgIdx:])) + copy(lineCopy, line[msgIdx:]) + return &SyslogMessage{ Severity: pri.Severity, - Message: line[msgIdx:], + Message: lineCopy, } }