| Previous | Next |
| EACCES | ENOTBLK |
EFAULT
This is usually a programming error
EFAULT does not normally mean that a disk, file, or network endpoint is faulty. It says the kernel could not safely access a pointer supplied by the calling process. For a read operation, the destination buffer may be outside the process’s accessible address space; for an execution call, the path or an element of argv or envp may be invalid.
Typical root causes include an uninitialized pointer, use after free, an incorrect structure layout, an invalid length paired with a valid buffer, or a lifetime race in native code. It can also happen when a pointer is valid in principle but does not cover the byte range the syscall was asked to use.
How to investigate
- Capture the exact syscall arguments, buffer address, length, and thread at the failure point.
- Audit ownership and lifetime of buffers passed across asynchronous, callback, FFI, or thread boundaries.
- Validate sizes before conversion to the system-call type and check array/vector termination rules.
- Use memory-safety tooling and a minimal reproduction; retrying the same invalid pointer does not recover the operation.
References
Looking for a different code? Search another status or error code.