git: 63c7a483e552 - main - kboot: Assert errno is negative
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 02 Feb 2023 21:11:52 UTC
The branch main has been updated by imp:
URL: https://cgit.FreeBSD.org/src/commit/?id=63c7a483e55274a824e564e308215cc0f0aee6aa
commit 63c7a483e55274a824e564e308215cc0f0aee6aa
Author: Warner Losh <imp@FreeBSD.org>
AuthorDate: 2023-02-02 21:08:03 +0000
Commit: Warner Losh <imp@FreeBSD.org>
CommitDate: 2023-02-02 21:09:55 +0000
kboot: Assert errno is negative
When converting from a Linux error to a FreeBSD errno, assert that the
value passed in is negative, as is Linux's custom.
Suggested by: brooks
Sponsored by: Netflix
Reviewed by: tsoome, brooks
Differential Revision: https://reviews.freebsd.org/D38357
---
stand/kboot/host_syscall.h | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/stand/kboot/host_syscall.h b/stand/kboot/host_syscall.h
index 75394afcde6c..64288f48e6f0 100644
--- a/stand/kboot/host_syscall.h
+++ b/stand/kboot/host_syscall.h
@@ -29,6 +29,7 @@
#define _HOST_SYSCALL_H
#include <stand.h>
+#include <assert.h>
long host_syscall(int number, ...);
@@ -214,6 +215,12 @@ ssize_t host_write(int fd, const void *buf, size_t nbyte);
* function where -1 to -34 are translated to 1 to 34 and all others are EINVAL.
* Pass the linux return value, which will be the -errno.
*/
-#define host_to_stand_errno(e) ((-e) > 34 ? EINVAL : (-e))
+static __inline int
+host_to_stand_errno(int e)
+{
+ assert(e < 0);
+
+ return((-e) > 34 ? EINVAL : (-e));
+}
#endif