Improve signals and memory protection

- Document sigaction()
- Simplify New Technology fork() code
- Testing and many bug fixes for mprotect()
- Distribute Intel Xed ILD in the amalgamation
- Turn Xed enums into defines to avoid DWARF bloat
- Improve polyfilling of SA_SIGINFO on BSDs and fix bugs
- setpgid(getpid(), getpid()) on Windows will ignore CTRL-C
- Work around issues relating to NT mappings being executable
- Permit automatic executable stack override via `ape_stack_pf`
This commit is contained in:
Justine Tunney 2022-04-12 22:11:00 -07:00
parent c95c9d9508
commit f684e348d4
76 changed files with 1844 additions and 1121 deletions

View file

@ -35,8 +35,8 @@ testonly dontdiscard uint8_t *unbingx86op(const char16_t *codez) {
* Long mode instruction length decoder.
*/
testonly int ild(const char16_t *codez) {
int error;
struct XedDecodedInst xedd;
enum XedError error;
error = xed_instruction_length_decode(
xed_decoded_inst_zero_set_mode(&xedd, XED_MACHINE_MODE_LONG_64),
gc(unbingx86op(codez)), strlen16(codez) + 16);
@ -47,8 +47,8 @@ testonly int ild(const char16_t *codez) {
* Real mode instruction length decoder.
*/
testonly int ildreal(const char16_t *codez) {
int error;
struct XedDecodedInst xedd;
enum XedError error;
error = xed_instruction_length_decode(
xed_decoded_inst_zero_set_mode(&xedd, XED_MACHINE_MODE_REAL),
gc(unbingx86op(codez)), strlen16(codez) + 16);
@ -59,8 +59,8 @@ testonly int ildreal(const char16_t *codez) {
* Legacy mode instruction length decoder.
*/
testonly int ildlegacy(const char16_t *codez) {
int error;
struct XedDecodedInst xedd;
enum XedError error;
error = xed_instruction_length_decode(
xed_decoded_inst_zero_set_mode(&xedd, XED_MACHINE_MODE_LEGACY_32),
gc(unbingx86op(codez)), strlen16(codez) + 16);