]> Cypherpunks repositories - gostls13.git/commitdiff
syscall: disallow slashes in file names on Plan 9
authorDavid du Colombier <0intro@gmail.com>
Wed, 18 Dec 2013 23:58:23 +0000 (00:58 +0100)
committerDavid du Colombier <0intro@gmail.com>
Wed, 18 Dec 2013 23:58:23 +0000 (00:58 +0100)
R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/43480050

src/pkg/syscall/dir_plan9.go

index b7ab4cd108a5eb5e4e8d0a81368e563c51f4a500..d9fb26b133f1e7c3acc39afd87a37584518ba72e 100644 (file)
@@ -11,6 +11,7 @@ import "errors"
 var (
        ErrShortStat = errors.New("stat buffer too short")
        ErrBadStat   = errors.New("malformed stat buffer")
+       ErrBadName   = errors.New("bad character in file name")
 )
 
 // A Qid represents a 9P server's unique identification for a file.
@@ -65,6 +66,12 @@ func (d *Dir) Marshal(b []byte) (n int, err error) {
                return n, ErrShortStat
        }
 
+       for _, c := range d.Name {
+               if c == '/' {
+                       return n, ErrBadName
+               }
+       }
+
        b = pbit16(b, uint16(n)-2)
        b = pbit16(b, d.Type)
        b = pbit32(b, d.Dev)