void disable_non_net_syscalls_uniarch(void) { unsigned int i; for_each_syscall(i) { if (validate_specific_syscall_silent(syscalls, i) == FALSE) continue; if (syscalls[i].entry->flags & ACTIVE) { if (is_syscall_net_related(syscalls, i) == FALSE) { toggle_syscall_n(i, FALSE, syscalls[i].entry->name, syscalls[i].entry->name); } } } }
void toggle_syscall(const char *arg, bool state) { int specific_syscall = 0; char * arg_name = NULL; if (biarch == TRUE) { toggle_syscall_biarch(arg, state); return; } /* non-biarch case. */ check_user_specified_arch(arg, &arg_name, NULL, NULL); //We do not care about arch here, just to get rid of arg flags. specific_syscall = search_syscall_table(syscalls, max_nr_syscalls, arg_name); toggle_syscall_n(specific_syscall, state, arg, arg_name); clear_check_user_specified_arch(arg, &arg_name); }
void enable_random_syscalls_uniarch(void) { unsigned int call; retry: call = rand() % max_nr_syscalls; if (validate_specific_syscall_silent(syscalls, call) == FALSE) goto retry; if (no_files == TRUE) if (is_syscall_net_related(syscalls, call) == FALSE) goto retry; /* if we've set this to be disabled, don't enable it! */ if (syscalls[call].entry->flags & TO_BE_DEACTIVATED) goto retry; toggle_syscall_n(call, TRUE, syscalls[call].entry->name, syscalls[call].entry->name); }
void toggle_syscall(const char *arg, bool state) { int specific_syscall = 0; char * arg_name = NULL; if (biarch == TRUE) { toggle_syscall_biarch(arg, state); return; } /* non-biarch case. */ check_user_specified_arch(arg, &arg_name, NULL, NULL); //We do not care about arch here, just to get rid of arg flags. specific_syscall = search_syscall_table(syscalls, max_nr_syscalls, arg_name); if (specific_syscall == -1) { outputerr("No idea what syscall (%s) is.\n", arg); goto out; } toggle_syscall_n(specific_syscall, state, arg, arg_name); out: clear_check_user_specified_arch(arg, &arg_name); }