From 33f3afa7afac66f91ba281521db26ea932ead5a4 Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Tue, 31 Jan 2012 17:29:59 -0500 Subject: [PATCH] gc: diagnose \ in import path R=ken2 CC=golang-dev https://golang.org/cl/5609044 --- src/cmd/gc/lex.c | 5 +++++ test/import5.go | 11 +++++++++++ 2 files changed, 16 insertions(+) create mode 100644 test/import5.go diff --git a/src/cmd/gc/lex.c b/src/cmd/gc/lex.c index db6dfc3e119..9a21c930108 100644 --- a/src/cmd/gc/lex.c +++ b/src/cmd/gc/lex.c @@ -574,6 +574,11 @@ importfile(Val *f, int line) yyerror("import path contains NUL"); errorexit(); } + + if(strchr(f->u.sval->s, '\\')) { + yyerror("import path contains backslash; use slash"); + errorexit(); + } // The package name main is no longer reserved, // but we reserve the import path "main" to identify diff --git a/test/import5.go b/test/import5.go new file mode 100644 index 00000000000..ee041709a15 --- /dev/null +++ b/test/import5.go @@ -0,0 +1,11 @@ +// errchk $G -e $D/$F.go + +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// import paths are slash-separated; reject backslash + +package main + +import `net\http` // ERROR "backslash"