-
Notifications
You must be signed in to change notification settings - Fork 1
/
fs.go
42 lines (33 loc) · 1.18 KB
/
fs.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package sanitizers
import (
"io/fs"
"github.com/CodeIntelligenceTesting/gofuzz/sanitizers/detectors"
)
func FsFileInfoToDirEntry(hookId int, info fs.FileInfo) fs.DirEntry {
detectors.NewPathTraversal(hookId, info.Name()).Detect()
return fs.FileInfoToDirEntry(info)
}
func FsReadDir(hookId int, fsys fs.FS, name string) ([]fs.DirEntry, error) {
detectors.NewPathTraversal(hookId, name).Detect()
return fs.ReadDir(fsys, name)
}
func FsReadFile(hookId int, fsys fs.FS, name string) ([]byte, error) {
detectors.NewPathTraversal(hookId, name).Detect()
return fs.ReadFile(fsys, name)
}
func FsStat(hookId int, fsys fs.FS, name string) (fs.FileInfo, error) {
detectors.NewPathTraversal(hookId, name).Detect()
return fs.Stat(fsys, name)
}
func FsSub(hookId int, fsys fs.FS, dir string) (fs.FS, error) {
detectors.NewPathTraversal(hookId, dir).Detect()
return fs.Sub(fsys, dir)
}
func FsWalkDir(hookId int, fsys fs.FS, root string, fn fs.WalkDirFunc) error {
detectors.NewPathTraversal(hookId, root).Detect()
return fs.WalkDir(fsys, root, fn)
}
func FsOpen(hookId int, fsys fs.FS, name string) (fs.File, error) {
detectors.NewPathTraversal(hookId, name).Detect()
return fsys.Open(name)
}