routers: Fix a crash while initializing network fs. (#1382)

Crash happens when 'minio server filename' a file name is
provided instead of a directory on command line argument.

```
panic: runtime error: slice bounds out of range

goroutine 1 [running]:
panic(0x5eb460, 0xc82000e0b0)
	/usr/local/opt/go/libexec/src/runtime/panic.go:464 +0x3e6
main.splitNetPath(0x7fff5fbff9bd, 0x7, 0x0, 0x0, 0x0, 0x0)
	/Users/harsha/mygo/src/github.com/minio/minio/network-fs.go:49 +0xb7
main.newNetworkFS(0x7fff5fbff9bd, 0x7, 0x0, 0x0, 0x0, 0x0)
	/Users/harsha/mygo/src/github.com/minio/minio/network-fs.go:90 +0x20a
main.configureServerHandler(0xc82024e1c8, 0x5, 0xc8200640e0, 0x1, 0x1, 0x0, 0x0)
	/Users/harsha/mygo/src/github.com/minio/minio/routers.go:43 +0x6ce
main.configureServer(0xc82024e1c8, 0x5, 0xc8200640e0, 0x1, 0x1, 0x5)
	/Users/harsha/mygo/src/github.com/minio/minio/server-main.go:86 +0x67
```
This commit is contained in:
Harshavardhana
2016-04-25 18:10:40 -07:00
committed by Anand Babu (AB) Periasamy
parent 42254b5c4d
commit 5f80edf232
4 changed files with 24 additions and 30 deletions

View File

@@ -32,7 +32,8 @@ func (s *MySuite) TestFSAPISuite(c *C) {
create := func() objectAPI {
path, err := ioutil.TempDir(os.TempDir(), "minio-")
c.Check(err, IsNil)
storageAPI, err := newFS(path)
storageAPI, err := newStorageAPI(path)
c.Check(err, IsNil)
objAPI := newObjectLayer(storageAPI)
storageList = append(storageList, path)
return objAPI
@@ -52,7 +53,7 @@ func (s *MySuite) TestXLAPISuite(c *C) {
erasureDisks = append(erasureDisks, path)
}
storageList = append(storageList, erasureDisks...)
storageAPI, err := newXL(erasureDisks...)
storageAPI, err := newStorageAPI(erasureDisks...)
c.Check(err, IsNil)
objAPI := newObjectLayer(storageAPI)
return objAPI