summaryrefslogtreecommitdiffhomepage
path: root/pkg/sentry
diff options
context:
space:
mode:
authorZach Koopmans <zkoopmans@google.com>2021-10-29 14:00:52 -0700
committergVisor bot <gvisor-bot@google.com>2021-10-29 14:03:16 -0700
commitb822923b706d6d2c5206451040f51a8c2f961353 (patch)
tree393f215aa879b909c9c9debd5e893bddb61ee50a /pkg/sentry
parent1953d2ad28d405a3ab028feba7b6fca18339e9be (diff)
[syserr] Covert all linuxerr returns to error type.
Change the linuxerr.ErrorFromErrno to return an error type and not a *errors.Error type. The latter results in problems comparing to nil as <nil><nil> != <nil><*errors.Error>. In a follow up, there will be a change to remove *errors.Error.Errno(), which will also encourage users to not use Errnos to reference linuxerr. PiperOrigin-RevId: 406444419
Diffstat (limited to 'pkg/sentry')
-rw-r--r--pkg/sentry/kernel/task_syscall.go4
1 files changed, 2 insertions, 2 deletions
diff --git a/pkg/sentry/kernel/task_syscall.go b/pkg/sentry/kernel/task_syscall.go
index 2b1d7e114..2b85fe1ca 100644
--- a/pkg/sentry/kernel/task_syscall.go
+++ b/pkg/sentry/kernel/task_syscall.go
@@ -381,7 +381,7 @@ func ExtractErrno(err error, sysno int) int {
case unix.Errno:
return int(err)
case *errors.Error:
- return int(err.Errno())
+ return int(linuxerr.ToUnix(err))
case *memmap.BusError:
// Bus errors may generate SIGBUS, but for syscalls they still
// return EFAULT. See case in task_run.go where the fault is
@@ -395,7 +395,7 @@ func ExtractErrno(err error, sysno int) int {
return ExtractErrno(err.Err, sysno)
default:
if errno, ok := linuxerr.TranslateError(err); ok {
- return int(errno.Errno())
+ return int(linuxerr.ToUnix(errno))
}
}
panic(fmt.Sprintf("Unknown syscall %d error: %v", sysno, err))