query: require argument for negation
Otherwise, a query like "-" causes shard crash.
Fixes #108
Change-Id: I7769006ed6ea84be6ea950abfc65123438ff7455
diff --git a/query/parse.go b/query/parse.go
index 029737d..ecbebf7 100644
--- a/query/parse.go
+++ b/query/parse.go
@@ -184,6 +184,9 @@
if err != nil {
return nil, 0, err
}
+ if subQ == nil {
+ return nil, 0, fmt.Errorf("query: '-' operator needs an argument")
+ }
b = b[n:]
expr = &Not{subQ}
diff --git a/query/parse_test.go b/query/parse_test.go
index 81aaa11..8acd719 100644
--- a/query/parse_test.go
+++ b/query/parse_test.go
@@ -98,6 +98,7 @@
)},
// errors.
+ {"--", nil},
{"\"abc", nil},
{"\"a\\", nil},
{"case:foo", nil},