Whenever the user program passes the kernel a pointer to a memory location, the kernel must be extra careful before accessing that pointer. If the user passes an invalid pointer, it could easily cause the kernel to crash. Even worse, it could induce the kernel to make arbitrary writes within kernel space.
Note the dummy implementation of is_valid_pointer in syscall_handler.c. Test valid pointers by ensuring that they fall within the bounds of the current heap and stack limits, so that the kernel can be assured that accessing them is safe from the kernel's perspective.
Whenever the user program passes the kernel a pointer to a memory location, the kernel must be extra careful before accessing that pointer. If the user passes an invalid pointer, it could easily cause the kernel to crash. Even worse, it could induce the kernel to make arbitrary writes within kernel space.
Note the dummy implementation of
is_valid_pointerinsyscall_handler.c. Test valid pointers by ensuring that they fall within the bounds of the current heap and stack limits, so that the kernel can be assured that accessing them is safe from the kernel's perspective.