TSG-23332 Fix the issue of coredump generated when Proxy executes lua script.

This commit is contained in:
fengweihao
2024-11-04 16:27:16 +08:00
parent 2b7d35c5c8
commit 13ea52d6d1
2 changed files with 7 additions and 3 deletions

View File

@@ -811,8 +811,10 @@ void doh_send_metric_log(const struct tfe_stream * stream, struct doh_ctx *ctx,
return; return;
} }
char uuid_string[UUID_STRING_SIZE] = {0};
uuid_unparse(ctx->result->config_uuid, uuid_string);
fieldstat->tags[thread_id][TAG_VSYS_ID].value_longlong = ctx->result->vsys_id; fieldstat->tags[thread_id][TAG_VSYS_ID].value_longlong = ctx->result->vsys_id;
fieldstat->tags[thread_id][TAG_RULE_ID].value_str = ctx->result->config_uuid_string; fieldstat->tags[thread_id][TAG_RULE_ID].value_str = uuid_string;
fieldstat->tags[thread_id][TAG_ACTION].value_str = "manipulate"; fieldstat->tags[thread_id][TAG_ACTION].value_str = "manipulate";
fieldstat->tags[thread_id][TAG_SUB_ACTION].value_str = "redirect"; fieldstat->tags[thread_id][TAG_SUB_ACTION].value_str = "redirect";

View File

@@ -1529,8 +1529,10 @@ void proxy_send_metric_log(const struct tfe_stream * stream, struct proxy_http_c
for(i=0; i< ctx->n_enforce; i++) for(i=0; i< ctx->n_enforce; i++)
{ {
char uuid_string[UUID_STRING_SIZE] = {0};
uuid_unparse(ctx->enforce_rules[i].config_uuid, uuid_string);
fieldstat->tags[thread_id][TAG_VSYS_ID].value_longlong = ctx->enforce_rules[i].vsys_id; fieldstat->tags[thread_id][TAG_VSYS_ID].value_longlong = ctx->enforce_rules[i].vsys_id;
fieldstat->tags[thread_id][TAG_RULE_ID].value_str = ctx->enforce_rules[i].config_uuid_string; fieldstat->tags[thread_id][TAG_RULE_ID].value_str = uuid_string;
fieldstat->tags[thread_id][TAG_ACTION].value_str = "manipulate"; fieldstat->tags[thread_id][TAG_ACTION].value_str = "manipulate";
if(ctx->enforce_rules[i].action == PX_ACTION_MANIPULATE) if(ctx->enforce_rules[i].action == PX_ACTION_MANIPULATE)
{ {
@@ -1891,7 +1893,7 @@ void http_lua(const struct tfe_stream * stream, const struct tfe_http_session *
tsg_ctx->events = events; tsg_ctx->events = events;
tsg_ctx->session = session; tsg_ctx->session = session;
tsg_ctx->local_logger = g_proxy_rt->local_logger; tsg_ctx->local_logger = g_proxy_rt->local_logger;
tsg_ctx->config_uuid_str = ctx->enforce_rules[0].config_uuid_string; tsg_ctx->config_uuid_str = tfe_strdup(ctx->enforce_rules[0].config_uuid_string);
struct tfe_http_half * in_req_half = session->req; struct tfe_http_half * in_req_half = session->req;
struct tfe_http_half * in_resp_half = session->resp; struct tfe_http_half * in_resp_half = session->resp;