From 47e5bff3746ce0a9e343e6f776f5fcfa684a7b5a Mon Sep 17 00:00:00 2001 From: Moe Jette <jette1@llnl.gov> Date: Tue, 21 Nov 2006 22:17:04 +0000 Subject: [PATCH] svn merge -r10247:10249 https://eris.llnl.gov/svn/slurm/branches/slurm-1.1 --- src/slurmctld/agent.c | 1 + src/slurmctld/job_mgr.c | 1 + src/slurmctld/proc_req.c | 8 ++++---- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/slurmctld/agent.c b/src/slurmctld/agent.c index 8c7603831b3..b25af3a0be6 100644 --- a/src/slurmctld/agent.c +++ b/src/slurmctld/agent.c @@ -1257,6 +1257,7 @@ static void _slurmctld_free_batch_job_launch_msg(batch_job_launch_msg_t * msg) { if (msg) { if (msg->environment) { + xfree(msg->environment[0]); xfree(msg->environment); } slurm_free_job_launch_msg(msg); diff --git a/src/slurmctld/job_mgr.c b/src/slurmctld/job_mgr.c index 72b94db135a..628753528da 100644 --- a/src/slurmctld/job_mgr.c +++ b/src/slurmctld/job_mgr.c @@ -2120,6 +2120,7 @@ char *get_job_script(struct job_record *job_ptr) * OUT data - pointer to array of pointers to strings (e.g. env), * must be xfreed when no longer needed * OUT size - number of elements in data + * NOTE: The output format of this must be identical with _xduparray2() */ static void _read_data_array_from_file(char *file_name, char ***data, uint16_t * size) diff --git a/src/slurmctld/proc_req.c b/src/slurmctld/proc_req.c index de46932205b..caa0c1fc56d 100644 --- a/src/slurmctld/proc_req.c +++ b/src/slurmctld/proc_req.c @@ -2249,7 +2249,8 @@ _xduparray(uint16_t size, char ** array) return result; } -/* like _xduparray(), but performs a single xmalloc() */ +/* Like _xduparray(), but performs two xmalloc(). The output format of this + * must be identical to _read_data_array_from_file() */ static char ** _xduparray2(uint16_t size, char ** array) { @@ -2261,10 +2262,9 @@ _xduparray2(uint16_t size, char ** array) for (i=0; i<size; i++) len += (strlen(array[i]) + 1); - ptr = xmalloc(sizeof(char *) * size + len); - result = (char **) ptr; + ptr = xmalloc(len); + result = (char **) xmalloc(sizeof(char *) * size); - ptr += (sizeof(char *) * size); for (i=0; i<size; i++) { result[i] = ptr; len = strlen(array[i]); -- GitLab