From 2fd90ad17ef0179e1cb15eff12cbef59c72c3ae6 Mon Sep 17 00:00:00 2001 From: Danny Auble <da@llnl.gov> Date: Fri, 3 Dec 2010 20:52:26 +0000 Subject: [PATCH] fixed minor memory leak --- .../slurmdbd/accounting_storage_slurmdbd.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/plugins/accounting_storage/slurmdbd/accounting_storage_slurmdbd.c b/src/plugins/accounting_storage/slurmdbd/accounting_storage_slurmdbd.c index 7caae3d634f..6d9064d9cfe 100644 --- a/src/plugins/accounting_storage/slurmdbd/accounting_storage_slurmdbd.c +++ b/src/plugins/accounting_storage/slurmdbd/accounting_storage_slurmdbd.c @@ -113,12 +113,20 @@ static bool running_db_inx = 0; extern int jobacct_storage_p_job_start(void *db_conn, struct job_record *job_ptr); -static void _partial_destroy_dbd_job_start(void *object) +static void _partial_free_dbd_job_start(void *object) { dbd_job_start_msg_t *req = (dbd_job_start_msg_t *)object; if(req) { xfree(req->node_inx); xfree(req->block_id); + } +} + +static void _partial_destroy_dbd_job_start(void *object) +{ + dbd_job_start_msg_t *req = (dbd_job_start_msg_t *)object; + if(req) { + _partial_free_dbd_job_start(req); xfree(req); } } @@ -1972,10 +1980,10 @@ extern int jobacct_storage_p_job_start(void *db_conn, job_ptr->db_index = NO_VAL; if (slurm_send_slurmdbd_msg(SLURMDBD_VERSION, &msg) < 0) { - xfree(req.block_id); + _partial_free_dbd_job_start(&req); return SLURM_ERROR; } - xfree(req.block_id); + _partial_free_dbd_job_start(&req); return SLURM_SUCCESS; } /* If we don't have the db_index we need to wait for it to be @@ -1984,7 +1992,7 @@ extern int jobacct_storage_p_job_start(void *db_conn, rc = slurm_send_recv_slurmdbd_msg(SLURMDBD_VERSION, &msg, &msg_rc); if (rc != SLURM_SUCCESS) { if (slurm_send_slurmdbd_msg(SLURMDBD_VERSION, &msg) < 0) { - xfree(req.block_id); + _partial_free_dbd_job_start(&req); return SLURM_ERROR; } } else if (msg_rc.msg_type != DBD_ID_RC) { @@ -1997,7 +2005,7 @@ extern int jobacct_storage_p_job_start(void *db_conn, //info("here got %d for return code", resp->return_code); slurmdbd_free_id_rc_msg(resp); } - xfree(req.block_id); + _partial_free_dbd_job_start(&req); return rc; } -- GitLab