User pointer error type for path.ExecutableResolveError.

PiperOrigin-RevId: 477857846
This commit is contained in:
Etienne Perot
2022-09-29 17:06:58 -07:00
committed by gVisor bot
parent 2928c19239
commit 3e2e74279a
+4 -4
View File
@@ -32,11 +32,11 @@ import (
// ExecutableResolveError represents a failure to resolve the executable
// in ResolveExecutablePath.
type ExecutableResolveError error
type ExecutableResolveError struct{ error }
// ResolveExecutablePath resolves the given executable name given the working
// dir and environment.
// Returns ExecutableResolveError when the executable cannot be resolved.
// Returns *ExecutableResolveError when the executable cannot be resolved.
func ResolveExecutablePath(ctx context.Context, args *kernel.CreateProcessArgs) (string, error) {
name := args.Filename
if len(name) == 0 {
@@ -69,14 +69,14 @@ func ResolveExecutablePath(ctx context.Context, args *kernel.CreateProcessArgs)
if kernel.VFS2Enabled {
f, err := resolveVFS2(ctx, args.Credentials, args.MountNamespaceVFS2, paths, name)
if err != nil {
return "", ExecutableResolveError(fmt.Errorf("error finding executable %q in PATH %v: %v", name, paths, err))
return "", &ExecutableResolveError{fmt.Errorf("error finding executable %q in PATH %v: %v", name, paths, err)}
}
return f, nil
}
f, err := resolve(ctx, args.MountNamespace, paths, name)
if err != nil {
return "", ExecutableResolveError(fmt.Errorf("error finding executable %q in PATH %v: %v", name, paths, err))
return "", &ExecutableResolveError{fmt.Errorf("error finding executable %q in PATH %v: %v", name, paths, err)}
}
return f, nil
}