]> Cypherpunks repositories - gostls13.git/commitdiff
os: check for valid arguments in windows Readdir
authorPeter Mundy <go.peter.90@gmail.com>
Fri, 24 Sep 2010 02:06:59 +0000 (22:06 -0400)
committerRuss Cox <rsc@golang.org>
Fri, 24 Sep 2010 02:06:59 +0000 (22:06 -0400)
Fixes #1129.

R=rsc, brainman
CC=Joe Poirier, golang-dev
https://golang.org/cl/2211045

src/pkg/os/file_windows.go

index 658e9c8ddf2d2886835760a4f9cbe2106438ed15..cee3aad7e1f3dfc9ba2cf333c4a0be4e8d9803aa 100644 (file)
@@ -113,6 +113,12 @@ func (file *File) Stat() (fi *FileInfo, err Error) {
 // A negative count means to read until EOF.
 // Readdir returns the array and an Error, if any.
 func (file *File) Readdir(count int) (fi []FileInfo, err Error) {
+       if file == nil || file.fd < 0 {
+               return nil, EINVAL
+       }
+       if !file.isdir() {
+               return nil, &PathError{"Readdir", file.name, ENOTDIR}
+       }
        di := file.dirinfo
        size := count
        if size < 0 {