diff --git a/SysCall/syscall-3.md b/SysCall/syscall-3.md index c2c5ca7..e800f9c 100644 --- a/SysCall/syscall-3.md +++ b/SysCall/syscall-3.md @@ -180,7 +180,7 @@ All virtual system call requests will fall into the `__vsyscall_page` + `VSYSCAL In the second case, if we pass `vsyscall=emulate` parameter to the kernel command line, an attempt to perform virtual system call handler will cause a [page fault](https://en.wikipedia.org/wiki/Page_fault) exception. Of course, remember, the `vsyscall` page has `__PAGE_KERNEL_VVAR` access rights that forbid execution. The `do_page_fault` function is the `#PF` or page fault handler. It tries to understand the reason of the last page fault. And one of the reason can be situation when virtual system call called and `vsyscall` mode is `emulate`. In this case `vsyscall` will be handled by the `emulate_vsyscall` function that defined in the [arch/x86/entry/vsyscall/vsyscall_64.c](https://github.com/torvalds/linux/blob/master/arch/x86/entry/vsyscall/vsyscall_64.c) source code file. -The `emulate_vsyscall` function gets the number of a virtual system call, checks it, prints error and sends [segmentation fault](https://en.wikipedia.org/wiki/Segmentation_fault) single: +The `emulate_vsyscall` function gets the number of a virtual system call, checks it, prints error and sends [segmentation fault](https://en.wikipedia.org/wiki/Segmentation_fault) simply: ```C ... diff --git a/SysCall/syscall-4.md b/SysCall/syscall-4.md index 90ddd89..3283a28 100644 --- a/SysCall/syscall-4.md +++ b/SysCall/syscall-4.md @@ -249,7 +249,7 @@ And set the pointer to the top of new program's stack that we set in the `bprm_m bprm->exec = bprm->p; ``` -The top of the stack will contain the program filename and we store this filename to the `exec` field of the `linux_bprm` structure. +The top of the stack will contain the program filename and we store this fileneme to the `exec` field of the `linux_bprm` structure. Now we have filled `linux_bprm` structure, we call the `exec_binprm` function: @@ -284,7 +284,7 @@ function. This function goes through the list of handlers that contains differen * `binfmt_elf_fdpic` - Support for [elf](https://en.wikipedia.org/wiki/Executable_and_Linkable_Format) [FDPIC](http://elinux.org/UClinux_Shared_Library#FDPIC_ELF) binaries; * `binfmt_em86` - support for Intel [elf](https://en.wikipedia.org/wiki/Executable_and_Linkable_Format) binaries running on [Alpha](https://en.wikipedia.org/wiki/DEC_Alpha) machines. -So, the search_binary_handler tries to call the `load_binary` function and pass `linux_binprm` to it. If the binary handler supports the given executable file format, it starts to prepare the executable binary for execution: +So, the `search_binary_handler` tries to call the `load_binary` function and pass `linux_binprm` to it. If the binary handler supports the given executable file format, it starts to prepare the executable binary for execution: ```C int search_binary_handler(struct linux_binprm *bprm)