|
Electroneum
|
#include "util/netevent.h"#include "util/storage/lruhash.h"#include "util/module.h"#include "util/tube.h"#include "services/mesh.h"
Go to the source code of this file.
Macros | |
| #define | fptr_ok(x) |
This file contains functions that check function pointers. The functions contain a whitelist of known good callback values. Any other values lead to an error.
This prevent heap overflow based exploits, where the callback pointer is overwritten by a buffer overflow (apart from this defense, buffer overflows should be fixed of course).
Function pointers are used in o network code callbacks. o rbtree, lruhash, region data manipulation in lruhash, the assertions are before the critical regions. in other places, assertions are before the callback. o module operations.
Definition in file fptr_wlist.h.
| #define fptr_ok | ( | x | ) |
Macro to perform an assertion check for fptr wlist checks. Does not get disabled in optimize mode. Check adds security by layers.
Definition at line 70 of file fptr_wlist.h.
| int codeline_cmp | ( | const void * | a, |
| const void * | b | ||
| ) |
compare two codeline structs for rbtree from memstats test app
| a | codeline |
| b | codeline |
| int fptr_whitelist_alloc_cleanup | ( | void(*)(void *) | fptr | ) |
Check function pointer whitelist for alloc clear on id overflow call values.
| fptr | function pointer to check. |
| int fptr_whitelist_comm_point | ( | comm_point_callback_type * | fptr | ) |
Check function pointer whitelist for comm_point callback values.
| fptr | function pointer to check. |
| int fptr_whitelist_comm_point_raw | ( | comm_point_callback_type * | fptr | ) |
Check function pointer whitelist for raw comm_point callback values.
| fptr | function pointer to check. |
| int fptr_whitelist_comm_signal | ( | void(*)(int, void *) | fptr | ) |
Check function pointer whitelist for comm_signal callback values.
| fptr | function pointer to check. |
| int fptr_whitelist_comm_timer | ( | void(*)(void *) | fptr | ) |
Check function pointer whitelist for comm_timer callback values.
| fptr | function pointer to check. |
| int fptr_whitelist_event | ( | void(*)(int, short, void *) | fptr | ) |
Check function pointer whitelist for event structure callback values. This is not called by libevent itself, but checked by netevent.
| fptr | function pointer to check. |
| int fptr_whitelist_hash_compfunc | ( | lruhash_compfunc_type | fptr | ) |
Check function pointer whitelist for lruhash compfunc callback values.
| fptr | function pointer to check. |
| int fptr_whitelist_hash_deldatafunc | ( | lruhash_deldatafunc_type | fptr | ) |
Check function pointer whitelist for lruhash deldata callback values.
| fptr | function pointer to check. |
| int fptr_whitelist_hash_delkeyfunc | ( | lruhash_delkeyfunc_type | fptr | ) |
Check function pointer whitelist for lruhash delkeyfunc callback values.
| fptr | function pointer to check. |
| int fptr_whitelist_hash_markdelfunc | ( | lruhash_markdelfunc_type | fptr | ) |
Check function pointer whitelist for lruhash markdel callback values.
| fptr | function pointer to check. |
| int fptr_whitelist_hash_sizefunc | ( | lruhash_sizefunc_type | fptr | ) |
Check function pointer whitelist for lruhash sizefunc callback values.
| fptr | function pointer to check. |
| int fptr_whitelist_inplace_cb_edns_back_parsed | ( | inplace_cb_edns_back_parsed_func_type * | fptr | ) |
Check function pointer whitelist for inplace_cb_edns_back_parsed func values.
| fptr | function pointer to check. |
| int fptr_whitelist_inplace_cb_query | ( | inplace_cb_query_func_type * | fptr | ) |
Check function pointer whitelist for inplace_cb_query func values.
| fptr | function pointer to check. |
| int fptr_whitelist_inplace_cb_query_response | ( | inplace_cb_query_response_func_type * | fptr | ) |
Check function pointer whitelist for inplace_cb_query_response func values.
| fptr | function pointer to check. |
| int fptr_whitelist_inplace_cb_reply_generic | ( | inplace_cb_reply_func_type * | fptr, |
| enum inplace_cb_list_type | type | ||
| ) |
Check function pointer whitelist for inplace_cb_reply, inplace_cb_reply_cache, inplace_cb_reply_local and inplace_cb_reply_servfail func values.
| fptr | function pointer to check. |
| type | the type of the callback function. |
| int fptr_whitelist_mesh_cb | ( | mesh_cb_func_type | fptr | ) |
Check function pointer whitelist for mesh state callback values.
| fptr | function pointer to check. |
| int fptr_whitelist_mod_clear | ( | void(*)(struct module_qstate *qstate, int id) | fptr | ) |
Check function pointer whitelist for module clear call values.
| fptr | function pointer to check. |
| int fptr_whitelist_mod_deinit | ( | void(*)(struct module_env *env, int id) | fptr | ) |
Check function pointer whitelist for module deinit call values.
| fptr | function pointer to check. |
| int fptr_whitelist_mod_get_mem | ( | size_t(*)(struct module_env *env, int id) | fptr | ) |
Check function pointer whitelist for module get_mem call values.
| fptr | function pointer to check. |
| int fptr_whitelist_mod_inform_super | ( | void(*)(struct module_qstate *qstate, int id, struct module_qstate *super) | fptr | ) |
Check function pointer whitelist for module inform_super call values.
| fptr | function pointer to check. |
| int fptr_whitelist_mod_init | ( | int(*)(struct module_env *env, int id) | fptr | ) |
Check function pointer whitelist for module init call values.
| fptr | function pointer to check. |
| int fptr_whitelist_mod_operate | ( | void(*)(struct module_qstate *qstate, enum module_ev event, int id, struct outbound_entry *outbound) | fptr | ) |
Check function pointer whitelist for module operate call values.
| fptr | function pointer to check. |
| int fptr_whitelist_modenv_add_sub | ( | int(*)(struct module_qstate *qstate, struct query_info *qinfo, uint16_t qflags, int prime, int valrec, struct module_qstate **newq, struct mesh_state **sub) | fptr | ) |
Check function pointer whitelist for module_env add_sub callback values.
| fptr | function pointer to check. |
| int fptr_whitelist_modenv_attach_sub | ( | int(*)(struct module_qstate *qstate, struct query_info *qinfo, uint16_t qflags, int prime, int valrec, struct module_qstate **newq) | fptr | ) |
Check function pointer whitelist for module_env attach_sub callback values.
| fptr | function pointer to check. |
| int fptr_whitelist_modenv_detach_subs | ( | void(*)(struct module_qstate *qstate) | fptr | ) |
Check function pointer whitelist for module_env detach_subs callback values.
| fptr | function pointer to check. |
| int fptr_whitelist_modenv_detect_cycle | ( | int(*)(struct module_qstate *qstate, struct query_info *qinfo, uint16_t flags, int prime, int valrec) | fptr | ) |
Check function pointer whitelist for module_env detect_cycle callback values.
| fptr | function pointer to check. |
| int fptr_whitelist_modenv_kill_sub | ( | void(*)(struct module_qstate *newq) | fptr | ) |
Check function pointer whitelist for module_env kill_sub callback values.
| fptr | function pointer to check. |
| int fptr_whitelist_modenv_send_query | ( | struct outbound_entry *(*)(struct query_info *qinfo, uint16_t flags, int dnssec, int want_dnssec, int nocaps, struct sockaddr_storage *addr, socklen_t addrlen, uint8_t *zone, size_t zonelen, int ssl_upstream, char *tls_auth_name, struct module_qstate *q) | fptr | ) |
Check function pointer whitelist for module_env send_query callback values.
| fptr | function pointer to check. |
| int fptr_whitelist_pending_tcp | ( | comm_point_callback_type * | fptr | ) |
Check function pointer whitelist for pending tcp callback values.
| fptr | function pointer to check. |
| int fptr_whitelist_pending_udp | ( | comm_point_callback_type * | fptr | ) |
Check function pointer whitelist for pending udp callback values.
| fptr | function pointer to check. |
| int fptr_whitelist_print_func | ( | void(*)(char *, void *) | fptr | ) |
Check function pointer whitelist for config_get_option func values.
| fptr | function pointer to check. |
| int fptr_whitelist_rbtree_cmp | ( | int(*)(const void *, const void *) | fptr | ) |
Check function pointer whitelist for rbtree cmp callback values.
| fptr | function pointer to check. |
| int fptr_whitelist_serviced_query | ( | comm_point_callback_type * | fptr | ) |
Check function pointer whitelist for serviced query callback values.
| fptr | function pointer to check. |
| int fptr_whitelist_start_accept | ( | void(*)(void *) | fptr | ) |
Check function pointer whitelist for start_accept callback values.
| fptr | function pointer to check. |
| int fptr_whitelist_stop_accept | ( | void(*)(void *) | fptr | ) |
Check function pointer whitelist for stop_accept callback values.
| fptr | function pointer to check. |
| int fptr_whitelist_tube_listen | ( | tube_callback_type * | fptr | ) |
Check function pointer whitelist for tube listen handler values.
| fptr | function pointer to check. |
| int order_lock_cmp | ( | const void * | e1, |
| const void * | e2 | ||
| ) |
Due to module breakage by fptr wlist, these test app declarations are presented here
compare two order_ids from lock-verify test app
| e1 | first order_id |
| e2 | second order_id |
| int replay_var_compare | ( | const void * | a, |
| const void * | b | ||
| ) |
compare two replay_vars