aboutsummaryrefslogtreecommitdiff
path: root/frida_mode/src
diff options
context:
space:
mode:
authorvan Hauser <vh@thc.org>2021-04-16 13:53:08 +0200
committerGitHub <noreply@github.com>2021-04-16 13:53:08 +0200
commit400ab10cfdfdb25235bf0483bc0fa0332ae11461 (patch)
treec5f5c705b502109917f722ed79549e281f5a02c3 /frida_mode/src
parent98989f1088d04dd4c0d21834c38b7683f1cfb42d (diff)
parent5dad04867461e93cefd1ecee6d336fa4d9ef632d (diff)
downloadafl++-400ab10cfdfdb25235bf0483bc0fa0332ae11461.tar.gz
Merge branch 'dev' into dev
Diffstat (limited to 'frida_mode/src')
-rw-r--r--frida_mode/src/instrument.c8
-rw-r--r--frida_mode/src/ranges.c3
2 files changed, 8 insertions, 3 deletions
diff --git a/frida_mode/src/instrument.c b/frida_mode/src/instrument.c
index 042fdab8..22910062 100644
--- a/frida_mode/src/instrument.c
+++ b/frida_mode/src/instrument.c
@@ -174,7 +174,13 @@ void instrument_coverage_optimize(const cs_insn * instr,
static void on_basic_block(GumCpuContext *context, gpointer user_data) {
- /* Avoid stack operations in potentially performance critical code */
+ /*
+ * This function is performance critical as it is called to instrument every
+ * basic block. By moving our print buffer to a global, we avoid it affecting
+ * the critical path with additional stack adjustments if tracing is not
+ * enabled. If tracing is enabled, then we're printing a load of diagnostic
+ * information so this overhead is unlikely to be noticeable.
+ */
static char buffer[200];
int len;
guint64 current_pc = (guint64)user_data;
diff --git a/frida_mode/src/ranges.c b/frida_mode/src/ranges.c
index fc14710f..49ef5a62 100644
--- a/frida_mode/src/ranges.c
+++ b/frida_mode/src/ranges.c
@@ -29,8 +29,7 @@ static void convert_address_token(gchar *token, GumMemoryRange *range) {
gchar **tokens;
int token_count;
tokens = g_strsplit(token, "-", 2);
- for (token_count = 0; tokens[token_count] != NULL; token_count++)
- ;
+ for (token_count = 0; tokens[token_count] != NULL; token_count++) {}
if (token_count != 2) {