diff options
author | Alex Gorrod <alexander.gorrod@mongodb.com> | 2015-12-24 09:30:17 +1100 |
---|---|---|
committer | Alex Gorrod <alexander.gorrod@mongodb.com> | 2015-12-24 09:30:17 +1100 |
commit | 759748b50f40d1c719cd5af469cf45befde04f3e (patch) | |
tree | 4d1ae9dcac2c28175b7f0f2b2928391bf5372d6f /bench | |
parent | 5428232f69acc957d740593db43914a972feee65 (diff) | |
parent | 948b6f682927b4bf2020783f43bd4aaa8775e4fc (diff) | |
download | mongo-759748b50f40d1c719cd5af469cf45befde04f3e.tar.gz |
Merge pull request #2408 from wiredtiger/WT-2304
WT-2304 - Fix memory leaking issue in config dump when there are multiple databases
Diffstat (limited to 'bench')
-rw-r--r-- | bench/wtperf/config.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/bench/wtperf/config.c b/bench/wtperf/config.c index 33278636bb5..808e85eedae 100644 --- a/bench/wtperf/config.c +++ b/bench/wtperf/config.c @@ -54,6 +54,7 @@ static void config_opt_usage(void); int config_assign(CONFIG *dest, const CONFIG *src) { + CONFIG_QUEUE_ENTRY *conf_line, *tmp_line; size_t i, len; char *newstr, **pstr; @@ -96,6 +97,18 @@ config_assign(CONFIG *dest, const CONFIG *src) } TAILQ_INIT(&dest->stone_head); + TAILQ_INIT(&dest->config_head); + + /* Clone the config string information into the new cfg object */ + TAILQ_FOREACH(conf_line, &src->config_head, c) { + len = strlen(conf_line->string); + if ((tmp_line = calloc(sizeof(CONFIG_QUEUE_ENTRY), 1)) == NULL) + return (enomem(src)); + if ((tmp_line->string = calloc(len + 1, 1)) == NULL) + return (enomem(src)); + strncpy(tmp_line->string, conf_line->string, len); + TAILQ_INSERT_TAIL(&dest->config_head, tmp_line, c); + } return (0); } |