1
0
mirror of https://github.com/golang/go synced 2024-11-18 17:04:41 -07:00
go/godoc
Hariharan Srinath 936084890a x/tools/godoc/vfs: adds NewNameSpace() and emptyVFS for better behavior
The existing implementation of NameSpace implicitly assumes that a
FileSystem with a directory at the top will be mounted at the root
mount point "/" of the NameSpace. If this is not the case, then
Stat("/") will fail even if ReadDir("/") succeedes. This is unexpected
behavior which breaks directory traversal routines (eg. http.FileServer).

This CL adds an unexported implementation of FileSystem called emptyVFS
that emulates an empty directory and adds a NewNameSpace() function that
binds emptyVFS to "/" so that unexpected behavior does not arise even if
the use does not mount anything explicitly at "/".

Latest patch set causes the FileInfo of the empty top level emulated
directory to return "/" for Name() and Zero Time for ModTime() and
removes the related struct state fields being used in the previous
implementation.

Fixes golang/go#14190

Change-Id: Idce2fc3c9b81206847a33840d76b660059d53d18
Reviewed-on: https://go-review.googlesource.com/19445
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
2016-03-21 00:49:05 +00:00
..
analysis godoc/analysis: use build.Default.GOROOT instead of runtime.GOROOT 2016-03-03 20:16:49 +00:00
dl godoc/dl: record and display SHA256 hashes for files 2016-01-07 05:23:22 +00:00
proxy godoc: hide appengine dependencies behind build tags 2016-01-04 23:08:03 +00:00
redirect godoc: don't drop the query params when redirecting 2015-10-06 03:11:16 +00:00
short godoc: hide appengine dependencies behind build tags 2016-01-04 23:08:03 +00:00
static Revert: godoc: Implement Unordered Output. 2016-03-09 22:01:01 +00:00
util tools: add import comments. 2014-12-09 22:42:16 +00:00
vfs x/tools/godoc/vfs: adds NewNameSpace() and emptyVFS for better behavior 2016-03-21 00:49:05 +00:00
appengine.go godoc: hide and block share functionality from specific countries 2015-09-02 05:52:45 +00:00
cmdline_test.go godoc: add missing copyright 2015-04-27 04:29:37 +00:00
cmdline.go godoc: add missing copyright 2015-04-27 04:29:37 +00:00
corpus.go go.tools: use golang.org/x/... import paths 2014-11-10 08:50:40 +11:00
dirtrees.go cmd/godoc: do not apply package path restrictions onto GOROOT when indexing. 2014-10-23 09:34:01 -07:00
format.go go.tools/godoc: Fix jump-to-line in source view. 2013-08-01 11:52:25 +10:00
godoc_test.go go.tools/godoc: deal with fallout from $GOROOT/src/pkg -> $GOROOT/src renaming. 2014-09-10 09:02:54 -04:00
godoc.go Revert: godoc: Implement Unordered Output. 2016-03-09 22:01:01 +00:00
index_test.go go.tools: use golang.org/x/... import paths 2014-11-10 08:50:40 +11:00
index.go go.tools: use golang.org/x/... import paths 2014-11-10 08:50:40 +11:00
linkify.go godoc: remove the last of the global variables, unexport Server 2013-07-19 10:27:53 +10:00
meta.go go.tools: use golang.org/x/... import paths 2014-11-10 08:50:40 +11:00
page.go playground, godoc: remove HK and RC from share-blocked country code list 2015-09-28 23:55:41 +00:00
parser.go go.tools: use golang.org/x/... import paths 2014-11-10 08:50:40 +11:00
pres.go cmd/godoc: accept GOOS and GOARCH URL parameters in -http mode 2016-02-04 22:11:53 +00:00
search.go godoc: don't quote search term to avoid escaping regexps 2016-02-05 01:57:33 +00:00
server.go cmd/godoc: accept GOOS and GOARCH URL parameters in -http mode 2016-02-04 22:11:53 +00:00
snippet.go godoc: remove more global variables 2013-07-18 13:14:09 +10:00
spec.go godoc: move bulk of the code to the package 2013-07-17 17:09:54 +10:00
spot.go godoc: add search results that point to documentation instead of source. 2013-11-21 11:55:42 -05:00
tab.go godoc: add missing copyright 2015-04-27 04:29:37 +00:00
template.go go.tools: use golang.org/x/... import paths 2014-11-10 08:50:40 +11:00