Handle invalid versions better
This commit is contained in:
parent
d83c654219
commit
f5d16cc423
@ -23,6 +23,7 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"path"
|
||||
@ -41,7 +42,7 @@ type database struct {
|
||||
vers verList
|
||||
}
|
||||
|
||||
func newDatabase(dir string, index int, writable bool) (*database, error) {
|
||||
func newDatabase(dir string, index uint, writable bool) (*database, error) {
|
||||
db := &database{base: dir}
|
||||
if err := db.load(dir, index, writable); err != nil {
|
||||
return nil, err
|
||||
@ -50,7 +51,7 @@ func newDatabase(dir string, index int, writable bool) (*database, error) {
|
||||
return db, nil
|
||||
}
|
||||
|
||||
func (db *database) load(dir string, index int, writable bool) error {
|
||||
func (db *database) load(dir string, index uint, writable bool) error {
|
||||
var err error
|
||||
|
||||
db.base, err = filepath.Abs(dir)
|
||||
@ -69,6 +70,10 @@ func (db *database) load(dir string, index int, writable bool) error {
|
||||
return err
|
||||
}
|
||||
|
||||
if index > uint(len(db.vers)) {
|
||||
return errors.New("invalid version index")
|
||||
}
|
||||
|
||||
if index > 0 {
|
||||
db.vers = db.vers[:index]
|
||||
}
|
||||
|
2
vfs.go
2
vfs.go
@ -40,7 +40,7 @@ func usage() {
|
||||
}
|
||||
|
||||
func main() {
|
||||
version := flag.Int("version", 0, "version index (specify 0 for latest)")
|
||||
version := flag.Uint("version", 0, "version index (0 for head)")
|
||||
readonly := flag.Bool("readonly", false, "mount filesystem as readonly")
|
||||
flag.Usage = usage
|
||||
flag.Parse()
|
||||
|
Loading…
Reference in New Issue
Block a user