From bd954561bf9ea29629829fcb054bb2de3a2ba87f Mon Sep 17 00:00:00 2001 From: scottf Date: Sun, 3 Jan 2021 09:47:15 -0500 Subject: [PATCH] stream handle headers with no space after colon --- server/stream.go | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/server/stream.go b/server/stream.go index fa9ab962..f5c2b40f 100644 --- a/server/stream.go +++ b/server/stream.go @@ -878,12 +878,19 @@ func getHdrVal(key string, hdr []byte) []byte { if index < 0 { return nil } + var value []byte - for i := index + len(key) + 2; i > 0 && i < len(hdr); i++ { - if hdr[i] == '\r' && i < len(hdr)-1 && hdr[i+1] == '\n' { + hdrLen := len(hdr) + index += len(key) + 1 + for hdr[index] == ' ' && index < hdrLen { + index++ + } + for index < hdrLen { + if hdr[index] == '\r' && index < hdrLen-1 && hdr[index+1] == '\n' { break } - value = append(value, hdr[i]) + value = append(value, hdr[index]) + index++ } return value } @@ -948,6 +955,7 @@ func (mset *Stream) processInboundJetStreamMsg(_ *subscription, pc *client, subj } return } + // Expected stream. if sname := getExpectedStream(hdr); sname != _EMPTY_ && sname != name { mset.mu.Unlock()