summaryrefslogtreecommitdiff
path: root/sys/kern
diff options
context:
space:
mode:
Diffstat (limited to 'sys/kern')
-rw-r--r--sys/kern/kern_filedesc.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/sys/kern/kern_filedesc.c b/sys/kern/kern_filedesc.c
index 3401f0b..8e15d48 100644
--- a/sys/kern/kern_filedesc.c
+++ b/sys/kern/kern_filedesc.c
@@ -35,6 +35,7 @@
#include <sys/system.h>
#include <sys/syslog.h>
#include <sys/vfs.h>
+#include <sys/signal.h>
#include <sys/vnode.h>
#include <vm/dynalloc.h>
#include <dev/vcons/vcons.h>
@@ -79,7 +80,7 @@ make_write_buf(struct proc *td, const void *data, char **buf_out, size_t count)
* and use copyin()
*/
if (copyin((uintptr_t)data, buf, count) != 0) {
- invalid_uaddr(data);
+ signal_raise(NULL, SIGSEGV);
}
} else {
/* Can just memcpy() here */
@@ -413,7 +414,7 @@ sys_open(struct syscall_args *args)
}
if (copyinstr(args->arg0, pathbuf, PATH_MAX) != 0) {
- invalid_uaddr(args->arg0);
+ signal_raise(NULL, SIGSEGV);
}
ret = open(pathbuf, args->arg1);
@@ -461,7 +462,7 @@ sys_read(struct syscall_args *args)
return bytes_read;
}
if (copyout(kbuf, args->arg1, bytes_read) != 0) {
- invalid_uaddr(args->arg1);
+ signal_raise(NULL, SIGSEGV);
}
dynfree(kbuf);