diff options
author | van Hauser <vh@thc.org> | 2020-05-12 17:05:12 +0200 |
---|---|---|
committer | van Hauser <vh@thc.org> | 2020-05-12 17:05:12 +0200 |
commit | 060f4ea320b2417bab2f153779b248698544f536 (patch) | |
tree | ce326b3bae0f992008ebf8833bbdcbedee67ac5c /src/afl-fuzz-python.c | |
parent | 61779547733699dfe6710a74529e02d515364aa4 (diff) | |
download | afl++-060f4ea320b2417bab2f153779b248698544f536.tar.gz |
enforce mandatary custom functions
Diffstat (limited to 'src/afl-fuzz-python.c')
-rw-r--r-- | src/afl-fuzz-python.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/afl-fuzz-python.c b/src/afl-fuzz-python.c index 1084e4f1..460d6683 100644 --- a/src/afl-fuzz-python.c +++ b/src/afl-fuzz-python.c @@ -135,7 +135,13 @@ static py_mutator_t *init_py_module(afl_state_t *afl, u8 *module_name) { u8 py_notrim = 0, py_idx; /* init, required */ py_functions[PY_FUNC_INIT] = PyObject_GetAttrString(py_module, "init"); + if (!py_functions[PY_FUNC_INIT]) + FATAL("init function not found in python module"); py_functions[PY_FUNC_FUZZ] = PyObject_GetAttrString(py_module, "fuzz"); + if (!py_functions[PY_FUNC_FUZZ]) + py_functions[PY_FUNC_FUZZ] = PyObject_GetAttrString(py_module, "mutate"); + if (!py_functions[PY_FUNC_FUZZ]) + WARNF("fuzz function not found in python module"); py_functions[PY_FUNC_PRE_SAVE] = PyObject_GetAttrString(py_module, "pre_save"); py_functions[PY_FUNC_INIT_TRIM] = @@ -152,6 +158,8 @@ static py_mutator_t *init_py_module(afl_state_t *afl, u8 *module_name) { py_functions[PY_FUNC_QUEUE_NEW_ENTRY] = PyObject_GetAttrString(py_module, "queue_new_entry"); py_functions[PY_FUNC_DEINIT] = PyObject_GetAttrString(py_module, "deinit"); + if (!py_functions[PY_FUNC_DEINIT]) + FATAL("deinit function not found in python module"); for (py_idx = 0; py_idx < PY_FUNC_COUNT; ++py_idx) { |