From e52997d4dc83cf76b8189711e58270083b69c7f3 Mon Sep 17 00:00:00 2001 From: Tobias Schottdorf Date: Sat, 25 Jul 2015 08:25:44 -0400 Subject: [PATCH] fix panic when dealing with empty sql ident another one for go-fuzz @dvyukov --- sql/parser/parse_test.go | 4 ++++ sql/parser/scan.go | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/sql/parser/parse_test.go b/sql/parser/parse_test.go index 941c9428e19c..77b83cb137c4 100644 --- a/sql/parser/parse_test.go +++ b/sql/parser/parse_test.go @@ -30,6 +30,10 @@ func TestParse(t *testing.T) { testData := []struct { sql string }{ + // TODO(tschottdorf): shouldn't these below error? + {``}, + {`VALUES ("")`}, + {`CREATE DATABASE a`}, {`CREATE DATABASE IF NOT EXISTS a`}, {`CREATE TABLE a ()`}, diff --git a/sql/parser/scan.go b/sql/parser/scan.go index 0b7aa4c56617..36dd6355207c 100644 --- a/sql/parser/scan.go +++ b/sql/parser/scan.go @@ -531,7 +531,7 @@ func isDigit(ch int) bool { } func isIdent(s string) bool { - if !isIdentStart(int(s[0])) { + if len(s) == 0 || !isIdentStart(int(s[0])) { return false } for i := 1; i < len(s); i++ {