mirror of
https://github.com/fergalmoran/ladybird.git
synced 2025-12-26 03:09:08 +00:00
Add some simple write buffering to LibC's stdio.
Plumb it all the way to the VirtualConsole. Also fix /bin/cat to write() the whole chunks we get from read() directly to stdout.
This commit is contained in:
@@ -29,15 +29,19 @@
|
||||
#define VALIDATE_USER_READ(b, s) \
|
||||
do { \
|
||||
LinearAddress laddr((dword)(b)); \
|
||||
if (!validate_user_read(laddr) || !validate_user_read(laddr.offset((s) - 1))) \
|
||||
if (!validate_user_read(laddr) || !validate_user_read(laddr.offset((s) - 1))) { \
|
||||
dbgprintf("Bad read address passed to syscall: %p +%u\n", laddr.get(), (s)); \
|
||||
return -EFAULT; \
|
||||
} \
|
||||
} while(0)
|
||||
|
||||
#define VALIDATE_USER_WRITE(b, s) \
|
||||
do { \
|
||||
LinearAddress laddr((dword)(b)); \
|
||||
if (!validate_user_write(laddr) || !validate_user_write(laddr.offset((s) - 1))) \
|
||||
if (!validate_user_write(laddr) || !validate_user_write(laddr.offset((s) - 1))) { \
|
||||
dbgprintf("Bad write address passed to syscall: %p +%u\n", laddr.get(), (s)); \
|
||||
return -EFAULT; \
|
||||
} \
|
||||
} while(0)
|
||||
|
||||
static const DWORD defaultStackSize = 16384;
|
||||
|
||||
Reference in New Issue
Block a user