Skip to content

Commit

Permalink
Merge pull request #89 from gyuho/c1
Browse files Browse the repository at this point in the history
db.go: clean up file descriptor on init/read failures
  • Loading branch information
gyuho authored Mar 18, 2018
2 parents 2e08706 + 3130a60 commit af9db20
Showing 1 changed file with 4 additions and 0 deletions.
4 changes: 4 additions & 0 deletions db.go
Original file line number Diff line number Diff line change
Expand Up @@ -213,10 +213,13 @@ func Open(path string, mode os.FileMode, options *Options) (*DB, error) {

// Initialize the database if it doesn't exist.
if info, err := db.file.Stat(); err != nil {
_ = db.close()
return nil, err
} else if info.Size() == 0 {
// Initialize new files with meta pages.
if err := db.init(); err != nil {
// clean up file descriptor on initialization fail
_ = db.close()
return nil, err
}
} else {
Expand All @@ -236,6 +239,7 @@ func Open(path string, mode os.FileMode, options *Options) (*DB, error) {
db.pageSize = int(m.pageSize)
}
} else {
_ = db.close()
return nil, ErrInvalid
}
}
Expand Down

0 comments on commit af9db20

Please sign in to comment.