summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSusan LoVerso <sue@wiredtiger.com>2014-02-26 09:34:55 -0500
committerSusan LoVerso <sue@wiredtiger.com>2014-02-26 09:34:55 -0500
commit07f758549bfd25dcd0b63418fdee2b5ddf4d72b7 (patch)
tree4c62f3fc9820feb5ff3075250dc3671c3d14b62d
parent27e5aeb968ae36a23f24995a466560297735afc8 (diff)
downloadmongo-07f758549bfd25dcd0b63418fdee2b5ddf4d72b7.tar.gz
Coverity fixes.
-rw-r--r--bench/wtperf/wtperf.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/bench/wtperf/wtperf.c b/bench/wtperf/wtperf.c
index 47389666a39..122370a6cc9 100644
--- a/bench/wtperf/wtperf.c
+++ b/bench/wtperf/wtperf.c
@@ -1217,7 +1217,7 @@ start_all_runs(CONFIG *cfg)
{
CONFIG *next_cfg, **configs;
char *cmd_buf, *new_home;
- int ret;
+ int ret, t_ret;
size_t cmd_len, home_len, i;
pthread_t *threads;
@@ -1253,7 +1253,12 @@ start_all_runs(CONFIG *cfg)
goto err;
/* Setup a unique home directory for each database. */
+ configs[i] = next_cfg;
new_home = malloc(home_len + 5);
+ if (new_home == NULL) {
+ ret = ENOMEM;
+ goto err;
+ }
sprintf(new_home, "%s/D%02d", cfg->home, (int)i);
next_cfg->home = (const char *)new_home;
@@ -1273,20 +1278,21 @@ start_all_runs(CONFIG *cfg)
lprintf(cfg, ret, 0, "Error creating thread");
goto err;
}
- configs[i] = next_cfg;
}
/* Wait for threads to finish. */
for (i = 0; i < cfg->database_count; i++) {
- if ((ret = pthread_join(threads[i], NULL)) != 0) {
+ if ((t_ret = pthread_join(threads[i], NULL)) != 0) {
lprintf(cfg, ret, 0, "Error joining thread");
- return (ret);
+ if (ret == 0)
+ ret = t_ret;
}
}
err: for (i = 0; i < cfg->database_count && configs[i] != NULL; i++) {
free((char *)configs[i]->home);
config_free(configs[i]);
+ free(configs[i]);
}
free(configs);
free(threads);