Skip to content

Commit

Permalink
[FIXUP] more leak fix
Browse files Browse the repository at this point in the history
  • Loading branch information
nichamon committed Sep 1, 2023
1 parent 351feaf commit f25a4fc
Showing 1 changed file with 21 additions and 19 deletions.
40 changes: 21 additions & 19 deletions ldms/src/ldmsd/ldmsd_request.c
Original file line number Diff line number Diff line change
Expand Up @@ -2421,11 +2421,11 @@ int __prdcr_set_status_json_obj(ldmsd_req_ctxt_t reqc)

rc = linebuf_printf(reqc, "[");
if (rc)
return rc;
goto out;
if (prdcr_name) {
prdcr = ldmsd_prdcr_find(prdcr_name);
if (!prdcr)
goto out;
goto close_str;
}

if (prdcr) {
Expand All @@ -2443,14 +2443,14 @@ int __prdcr_set_status_json_obj(ldmsd_req_ctxt_t reqc)
ldmsd_prdcr_unlock(prdcr);
if (rc) {
ldmsd_cfg_unlock(LDMSD_CFGOBJ_PRDCR);
goto out;
goto close_str;
}
}
ldmsd_cfg_unlock(LDMSD_CFGOBJ_PRDCR);
}

out:
close_str:
rc = linebuf_printf(reqc, "]");
out:
free(prdcr_name);
free(setname);
free(schema);
Expand Down Expand Up @@ -2488,8 +2488,8 @@ int strgp_decomp_init(ldmsd_strgp_t strgp, ldmsd_req_ctxt_t req);
static int strgp_add_handler(ldmsd_req_ctxt_t reqc)
{
char *attr_name, *name, *plugin, *container, *schema, *interval, *regex;
char *decomp;
name = plugin = container = schema = NULL;
char *decomp = NULL;
name = plugin = container = schema = interval = regex = NULL;
size_t cnt = 0;
uid_t uid;
gid_t gid;
Expand Down Expand Up @@ -3169,6 +3169,7 @@ static int strgp_status_handler(ldmsd_req_ctxt_t reqc)
"strgp '%s' doesn't exist.", name);
reqc->errcode = ENOENT;
ldmsd_send_req_response(reqc, reqc->line_buf);
free(name);
return 0;
}
}
Expand Down Expand Up @@ -4170,6 +4171,7 @@ static int updtr_status_handler(ldmsd_req_ctxt_t reqc)
"updtr '%s' doesn't exist.", name);
reqc->errcode = ENOENT;
ldmsd_send_req_response(reqc, reqc->line_buf);
free(name);
return 0;
}
}
Expand Down Expand Up @@ -4230,7 +4232,6 @@ static int updtr_status_handler(ldmsd_req_ctxt_t reqc)
LDMSD_REQ_EOM_F);
out:
free(name);
free(reset_s);
if (updtr)
ldmsd_updtr_put(updtr);
return rc;
Expand Down Expand Up @@ -4310,6 +4311,7 @@ static int updtr_task_status_handler(ldmsd_req_ctxt_t reqc)
cnt = snprintf(reqc->line_buf, reqc->line_len, "updtr '%s' not found", name);
ldmsd_send_error_reply(reqc->xprt, reqc->key.msg_no, ENOENT,
reqc->line_buf, cnt);
free(name);
return 0;
}
rc = __updtr_task_tree_json_obj(reqc, updtr);
Expand Down Expand Up @@ -4467,6 +4469,7 @@ static int prdcr_hint_tree_status_handler(ldmsd_req_ctxt_t reqc)
"prdcr '%s' not found", name);
reqc->errcode = ENOENT;
ldmsd_send_req_response(reqc, reqc->line_buf);
free(name);
return 0;
}
ldmsd_prdcr_lock(prdcr);
Expand Down Expand Up @@ -5173,7 +5176,7 @@ static int plugn_config_handler(ldmsd_req_ctxt_t reqc)
if (!av_list || !kw_list || !attr_copy) {
cnt = Snprintf(&reqc->line_buf, &reqc->line_len,
"Out of memory");
goto err;
goto send_reply;
}

reqc->errcode = tokenize(config_attr, kw_list, av_list);
Expand All @@ -5183,7 +5186,7 @@ static int plugn_config_handler(ldmsd_req_ctxt_t reqc)
cnt = Snprintf(&reqc->line_buf, &reqc->line_len,
"Out of memory");
reqc->errcode = ENOMEM;
goto err;
goto send_reply;
}

reqc->errcode = ldmsd_config_plugin(plugin_name, av_list, kw_list);
Expand All @@ -5203,12 +5206,6 @@ static int plugn_config_handler(ldmsd_req_ctxt_t reqc)
"The attribute '%s' is required by config.",
attr_name);
goto send_reply;
err:
av_free(kw_list);
av_free(av_list);
free(attr_copy);
kw_list = NULL;
av_list = NULL;
send_reply:
ldmsd_send_req_response(reqc, reqc->line_buf);
free(plugin_name);
Expand Down Expand Up @@ -5587,6 +5584,7 @@ static int set_sec_mod_handler(ldmsd_req_ctxt_t reqc)
reqc->errcode = EINVAL;
(void) snprintf(reqc->line_buf, reqc->line_len,
"Unknown group '%s'", value);
free(value);
goto free_regex;
}
gid = grp->gr_gid;
Expand Down Expand Up @@ -6273,6 +6271,7 @@ static int dump_cfg_handler(ldmsd_req_ctxt_t reqc)
}
fprintf(fp, "\n");
}

ldmsd_cfg_unlock(LDMSD_CFGOBJ_LISTEN);
/* Producers */
ldmsd_prdcr_t prdcr = NULL;
Expand Down Expand Up @@ -7818,8 +7817,8 @@ static int stream_status_handler(ldmsd_req_ctxt_t reqc)
*/
static int stream_stats_handler(ldmsd_req_ctxt_t reqc)
{
const char *regex = ldmsd_req_attr_str_value_get_by_id(reqc, LDMSD_ATTR_REGEX);
const char *stream = ldmsd_req_attr_str_value_get_by_id(reqc, LDMSD_ATTR_STREAM);
char *regex = ldmsd_req_attr_str_value_get_by_id(reqc, LDMSD_ATTR_REGEX);
char *stream = ldmsd_req_attr_str_value_get_by_id(reqc, LDMSD_ATTR_STREAM);
const char *match = NULL;
int is_regex = 0;
char buff[128];
Expand All @@ -7840,7 +7839,8 @@ static int stream_stats_handler(ldmsd_req_ctxt_t reqc)
snprintf(buff, sizeof(buff), "ldms_stream_stats_str() error: %d",
errno);
ldmsd_send_req_response(reqc, buff);
return 0;
rc = 0;
goto out;
}
attr.discrim = 1;
attr.attr_id = LDMSD_ATTR_JSON;
Expand All @@ -7858,6 +7858,8 @@ static int stream_stats_handler(ldmsd_req_ctxt_t reqc)
rc = ldmsd_append_reply(reqc, (char *)(&attr.discrim),
sizeof(attr.discrim), LDMSD_REQ_EOM_F);
out:
free(regex);
free(stream);
free(s);
return rc;
}
Expand Down

0 comments on commit f25a4fc

Please sign in to comment.