mirror of
https://github.com/Mathewnd/Astral.git
synced 2026-10-27 12:48:22 +00:00
pread/pwrite: fix vulnerability
This commit is contained in:
@@ -10,6 +10,11 @@ syscallret_t syscall_pread(context_t *context, int fd, void *buffer, size_t size
|
||||
.ret = -1
|
||||
};
|
||||
|
||||
if (!IS_USER_ADDRESS(buffer)) {
|
||||
ret.errno = EFAULT;
|
||||
return ret;
|
||||
}
|
||||
|
||||
file_t *file = fd_get(fd);
|
||||
|
||||
if (file == NULL || (file->flags & FILE_READ) == 0) {
|
||||
|
||||
@@ -8,6 +8,11 @@ syscallret_t syscall_pwrite(context_t *context, int fd, void *buffer, size_t siz
|
||||
.ret = -1
|
||||
};
|
||||
|
||||
if (!IS_USER_ADDRESS(buffer)) {
|
||||
ret.errno = EFAULT;
|
||||
return ret;
|
||||
}
|
||||
|
||||
file_t *file = fd_get(fd);
|
||||
|
||||
if (file == NULL || (file->flags & FILE_WRITE) == 0) {
|
||||
|
||||
Reference in New Issue
Block a user