Increase limit on getrandom() length

Fixed #567
This commit is contained in:
Theodore Dubois
2019-11-24 15:37:21 -08:00
parent d57b6d26fa
commit d05e0455bf
+9 -4
View File
@@ -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;
}