diff options
author | WorksButNotTested <62701594+WorksButNotTested@users.noreply.github.com> | 2021-07-15 09:46:16 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-07-15 10:46:16 +0200 |
commit | 3dd39fec906758cc545f526d5003e0f28278b316 (patch) | |
tree | d5448967abe409cbe244e80b8f93a7ebfac83045 /frida_mode/src/js/js.c | |
parent | b7cd6db08f1498f9bb10423309f554293e567aa9 (diff) | |
download | afl++-3dd39fec906758cc545f526d5003e0f28278b316.tar.gz |
Fix printing of JS errors (#1024)
Co-authored-by: Your Name <you@example.com>
Diffstat (limited to 'frida_mode/src/js/js.c')
-rw-r--r-- | frida_mode/src/js/js.c | 39 |
1 files changed, 18 insertions, 21 deletions
diff --git a/frida_mode/src/js/js.c b/frida_mode/src/js/js.c index cf98ff3e..86ae6d29 100644 --- a/frida_mode/src/js/js.c +++ b/frida_mode/src/js/js.c @@ -83,21 +83,33 @@ static void js_print_script(gchar *source) { } -static void create_cb(GObject *source_object, GAsyncResult *result, - gpointer user_data) { +static void load_cb(GObject *source_object, GAsyncResult *result, + gpointer user_data) { UNUSED_PARAMETER(source_object); UNUSED_PARAMETER(user_data); - script = gum_script_backend_create_finish(backend, result, &error); + gum_script_load_finish(script, result); + if (error != NULL) + { + FATAL("Failed to load script - %s", error->message); + } } -static void load_cb(GObject *source_object, GAsyncResult *result, - gpointer user_data) { +static void create_cb(GObject *source_object, GAsyncResult *result, + gpointer user_data) { UNUSED_PARAMETER(source_object); UNUSED_PARAMETER(user_data); - gum_script_load_finish(script, result); + script = gum_script_backend_create_finish(backend, result, &error); + if (error != NULL) + { + FATAL("Failed to create script: %s", error->message); + } + + gum_script_set_message_handler(script, js_msg, NULL, NULL); + + gum_script_load(script, cancellable, load_cb, NULL); } @@ -122,20 +134,6 @@ void js_start(void) { while (g_main_context_pending(context)) g_main_context_iteration(context, FALSE); - if (error != NULL) { - - g_printerr("%s\n", error->message); - FATAL("Error processing script"); - - } - - gum_script_load(script, cancellable, load_cb, NULL); - - while (g_main_context_pending(context)) - g_main_context_iteration(context, FALSE); - - gum_script_set_message_handler(script, js_msg, NULL, NULL); - if (!js_done) { FATAL("Script didn't call Afl.done()"); } } @@ -147,4 +145,3 @@ gboolean js_stalker_callback(const cs_insn *insn, gboolean begin, return js_user_callback(insn, begin, excluded, output); } - |