123456789101112131415161718192021222324252627282930313233343536373839404142 |
- package safepath
- // ErrNotAccessible is returned by Join when the resulting path doesn't exist,
- // is not accessible, or any of the path components was replaced with a symlink
- // during the path traversal.
- type ErrNotAccessible struct {
- Path string
- Cause error
- }
- func (*ErrNotAccessible) NotFound() {}
- func (e *ErrNotAccessible) Unwrap() error {
- return e.Cause
- }
- func (e *ErrNotAccessible) Error() string {
- msg := "cannot access path " + e.Path
- if e.Cause != nil {
- msg += ": " + e.Cause.Error()
- }
- return msg
- }
- // ErrEscapesBase is returned by Join when the resulting concatenation would
- // point outside of the specified base directory.
- type ErrEscapesBase struct {
- Base, Subpath string
- }
- func (*ErrEscapesBase) InvalidParameter() {}
- func (e *ErrEscapesBase) Error() string {
- msg := "path concatenation escapes the base directory"
- if e.Base != "" {
- msg += ", base: " + e.Base
- }
- if e.Subpath != "" {
- msg += ", subpath: " + e.Subpath
- }
- return msg
- }
|