From fdac1f52ee72c6d9c8051895500f9a1d6bab34b1 Mon Sep 17 00:00:00 2001 From: Jordan Orelli Date: Mon, 4 Aug 2014 22:36:19 +0000 Subject: [PATCH] support nil bulk string ewwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww --- values.go | 3 +++ values_test.go | 1 + 2 files changed, 4 insertions(+) diff --git a/values.go b/values.go index 414e754..c0c589b 100644 --- a/values.go +++ b/values.go @@ -101,6 +101,9 @@ func readBulkString(prefix []byte, r io.Reader) (value, error) { return nil, fmt.Errorf("unable to read bulkstring in redis protocol: bad prefix: %v", err) } + if n == -1 { + return nil, nil + } n += 2 b := make([]byte, n) n_read, err := r.Read(b) diff --git a/values_test.go b/values_test.go index ccc5490..c18cbfe 100644 --- a/values_test.go +++ b/values_test.go @@ -47,6 +47,7 @@ var valueTests = []valueTest{ {"-one two ", Error("one two ")}, // trailing space {"- one two", Error(" one two")}, // leading space + {"$-1\r\n", nil}, {"$0\r\n\r\n", BulkString("")}, // is this even a thing? {"$1\r\nx\r\n", BulkString("x")}, {"$4\r\netsy\r\n", BulkString("etsy")},