mirror of
https://github.com/ish-app/ish.git
synced 2026-05-28 21:10:35 +00:00
+9
-4
@@ -19,12 +19,17 @@ int get_random(char *buf, size_t len) {
|
||||
}
|
||||
|
||||
dword_t sys_getrandom(addr_t buf_addr, dword_t len, dword_t UNUSED(flags)) {
|
||||
if (len > 256)
|
||||
if (len > 1 << 20)
|
||||
return _EIO;
|
||||
char buf[256];
|
||||
if (get_random(buf, len) != 0)
|
||||
char *buf = malloc(len);
|
||||
if (get_random(buf, len) != 0) {
|
||||
free(buf);
|
||||
return _EIO;
|
||||
if (user_write(buf_addr, buf, len))
|
||||
}
|
||||
if (user_write(buf_addr, buf, len)) {
|
||||
free(buf);
|
||||
return _EFAULT;
|
||||
}
|
||||
free(buf);
|
||||
return len;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user