Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mpolden/echoip.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Polden <martin.polden@gmail.com>2017-05-28 14:57:48 +0300
committerMartin Polden <martin.polden@gmail.com>2017-05-28 14:57:48 +0300
commitf644b0b4885cebbb69e60e4a691d1265de46d00e (patch)
treef22176aff9bdf6173f9f642bfc1ea5433c3b4655 /useragent
parent0cd84ada1e66b6d917ea47c0c88693707f92f405 (diff)
Handle more invalid user agents
Diffstat (limited to 'useragent')
-rw-r--r--useragent/useragent.go2
-rw-r--r--useragent/useragent_test.go2
2 files changed, 3 insertions, 1 deletions
diff --git a/useragent/useragent.go b/useragent/useragent.go
index e533662..e0de8e7 100644
--- a/useragent/useragent.go
+++ b/useragent/useragent.go
@@ -15,7 +15,7 @@ func Parse(s string) UserAgent {
var version, comment string
if len(parts) > 1 {
// If first character is a number, treat it as version
- if parts[1][0] >= 48 && parts[1][0] <= 57 {
+ if len(parts[1]) > 0 && parts[1][0] >= 48 && parts[1][0] <= 57 {
rest := strings.SplitN(parts[1], " ", 2)
version = rest[0]
if len(rest) > 1 {
diff --git a/useragent/useragent_test.go b/useragent/useragent_test.go
index 14ff09a..b96acb7 100644
--- a/useragent/useragent_test.go
+++ b/useragent/useragent_test.go
@@ -10,6 +10,8 @@ func TestParse(t *testing.T) {
out UserAgent
}{
{"", UserAgent{}},
+ {"curl/", UserAgent{Product: "curl"}},
+ {"curl/foo", UserAgent{Product: "curl", Comment: "foo"}},
{"curl/7.26.0", UserAgent{Product: "curl", Version: "7.26.0"}},
{"Wget/1.13.4 (linux-gnu)", UserAgent{Product: "Wget", Version: "1.13.4", Comment: "(linux-gnu)"}},
{"Wget", UserAgent{Product: "Wget"}},