syscall fixes
This commit is contained in:
+8
-3
@@ -19,10 +19,15 @@ enum syslog_kind : uintptr_t {
|
||||
struct syscall_ret sys_syslog(enum syslog_kind kind, __user char* message, size_t len) {
|
||||
struct syscall_ret ret = {};
|
||||
|
||||
const size_t buf_len = MIN(len + 1, 0x1000);
|
||||
const size_t buf_len = MIN(len + 1, 256);
|
||||
char* buf = mem_alloc(buf_len, ALLOC_NOZERO);
|
||||
usercopy_read(buf, message, buf_len - 1);
|
||||
buf[buf_len] = 0;
|
||||
if (!usercopy_read(buf, message, buf_len - 1)) {
|
||||
mem_free(buf);
|
||||
|
||||
ret.error = EFAULT;
|
||||
return ret;
|
||||
}
|
||||
buf[buf_len - 1] = 0;
|
||||
|
||||
const char* log_level;
|
||||
switch (kind) {
|
||||
|
||||
Reference in New Issue
Block a user