From: Jeff Lucovsky Date: Wed, 21 Jun 2023 13:09:45 +0000 (-0400) Subject: detect/multi-tenant: Make tenant_id 32 bits everywhere X-Git-Tag: suricata-6.0.14~57 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e25082c08493385850c3d4795d7eb92af07a1aa1;p=thirdparty%2Fsuricata.git detect/multi-tenant: Make tenant_id 32 bits everywhere Issue: 6047 This commit ensures that the tenant id is contained in a unsigned 32 bit container. (cherry picked from commit 9fd77c737f4f2d14f0e79df8958c21a3ccb3ed85) --- diff --git a/src/detect-engine.c b/src/detect-engine.c index 9555b085f7..8360041ec1 100644 --- a/src/detect-engine.c +++ b/src/detect-engine.c @@ -2591,7 +2591,7 @@ static TmEcode DetectEngineThreadCtxInitForMT(ThreadVars *tv, DetectEngineThread DetectEngineTenantMapping *map_array = NULL; uint32_t map_array_size = 0; uint32_t map_cnt = 0; - int max_tenant_id = 0; + uint32_t max_tenant_id = 0; DetectEngineCtx *list = master->list; HashTable *mt_det_ctxs_hash = NULL; @@ -3923,7 +3923,7 @@ static uint32_t DetectEngineTentantGetIdFromPcap(const void *ctx, const Packet * return p->pcap_v.tenant_id; } -DetectEngineCtx *DetectEngineGetByTenantId(int tenant_id) +DetectEngineCtx *DetectEngineGetByTenantId(uint32_t tenant_id) { DetectEngineMasterCtx *master = &g_master_de_ctx; SCMutexLock(&master->lock); diff --git a/src/detect-engine.h b/src/detect-engine.h index 190662e604..5d58151d0c 100644 --- a/src/detect-engine.h +++ b/src/detect-engine.h @@ -92,7 +92,7 @@ uint32_t DetectEngineGetVersion(void); void DetectEngineBumpVersion(void); int DetectEngineAddToMaster(DetectEngineCtx *de_ctx); DetectEngineCtx *DetectEngineGetCurrent(void); -DetectEngineCtx *DetectEngineGetByTenantId(int tenant_id); +DetectEngineCtx *DetectEngineGetByTenantId(uint32_t tenant_id); void DetectEnginePruneFreeList(void); int DetectEngineMoveToFreeList(DetectEngineCtx *de_ctx); DetectEngineCtx *DetectEngineReference(DetectEngineCtx *); diff --git a/src/detect.h b/src/detect.h index 0b727e498a..2aadd7fbf6 100644 --- a/src/detect.h +++ b/src/detect.h @@ -759,7 +759,7 @@ typedef struct DetectEngineCtx_ { uint8_t flags; int failure_fatal; - int tenant_id; + uint32_t tenant_id; Signature *sig_list; uint32_t sig_cnt; diff --git a/src/runmode-unix-socket.c b/src/runmode-unix-socket.c index f4bbe1e659..8dbe1de3e2 100644 --- a/src/runmode-unix-socket.c +++ b/src/runmode-unix-socket.c @@ -56,7 +56,7 @@ int unix_socket_mode_is_running = 0; typedef struct PcapFiles_ { char *filename; char *output_dir; - int tenant_id; + uint32_t tenant_id; time_t delay; time_t poll_interval; bool continuous; @@ -246,16 +246,8 @@ static void PcapFilesFree(PcapFiles *cfile) * * \retval 0 in case of error, 1 in case of success */ -static TmEcode UnixListAddFile( - PcapCommand *this, - const char *filename, - const char *output_dir, - int tenant_id, - bool continuous, - bool should_delete, - time_t delay, - time_t poll_interval -) +static TmEcode UnixListAddFile(PcapCommand *this, const char *filename, const char *output_dir, + uint32_t tenant_id, bool continuous, bool should_delete, time_t delay, time_t poll_interval) { PcapFiles *cfile = NULL; if (filename == NULL || this == NULL) @@ -308,7 +300,7 @@ static TmEcode UnixSocketAddPcapFileImpl(json_t *cmd, json_t* answer, void *data PcapCommand *this = (PcapCommand *) data; const char *filename; const char *output_dir; - int tenant_id = 0; + uint32_t tenant_id = 0; bool should_delete = false; time_t delay = 30; time_t poll_interval = 5; @@ -769,7 +761,7 @@ TmEcode UnixSocketRegisterTenantHandler(json_t *cmd, json_t* answer, void *data) json_object_set_new(answer, "message", json_string("id is not an integer")); return TM_ECODE_FAILED; } - int tenant_id = json_integer_value(jarg); + uint32_t tenant_id = json_integer_value(jarg); /* 2 get tenant handler type */ jarg = json_object_get(cmd, "htype"); @@ -850,7 +842,7 @@ TmEcode UnixSocketUnregisterTenantHandler(json_t *cmd, json_t* answer, void *dat json_object_set_new(answer, "message", json_string("id is not an integer")); return TM_ECODE_FAILED; } - int tenant_id = json_integer_value(jarg); + uint32_t tenant_id = json_integer_value(jarg); /* 2 get tenant handler type */ jarg = json_object_get(cmd, "htype"); @@ -935,7 +927,7 @@ TmEcode UnixSocketRegisterTenant(json_t *cmd, json_t* answer, void *data) json_object_set_new(answer, "message", json_string("id is not an integer")); return TM_ECODE_FAILED; } - int tenant_id = json_integer_value(jarg); + uint32_t tenant_id = json_integer_value(jarg); /* 2 get tenant yaml */ jarg = json_object_get(cmd, "filename"); @@ -1011,7 +1003,7 @@ TmEcode UnixSocketReloadTenant(json_t *cmd, json_t* answer, void *data) json_object_set_new(answer, "message", json_string("id is not an integer")); return TM_ECODE_FAILED; } - int tenant_id = json_integer_value(jarg); + uint32_t tenant_id = json_integer_value(jarg); /* 2 get tenant yaml */ jarg = json_object_get(cmd, "filename"); @@ -1081,7 +1073,7 @@ TmEcode UnixSocketUnregisterTenant(json_t *cmd, json_t* answer, void *data) json_object_set_new(answer, "message", json_string("id is not an integer")); return TM_ECODE_FAILED; } - int tenant_id = json_integer_value(jarg); + uint32_t tenant_id = json_integer_value(jarg); SCLogInfo("remove-tenant: removing tenant %d", tenant_id);