summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Bostic <keith@wiredtiger.com>2014-03-01 07:06:30 -0500
committerKeith Bostic <keith@wiredtiger.com>2014-03-01 07:06:30 -0500
commitc983a02724de273c6d0fdad00e8223b7aa6e276d (patch)
tree0b7938aaf7bc05bb84f81a33aff234d7660a9044
parent6b59b6feb66135123ea55f62e5ba0f7ecf4d3322 (diff)
downloadmongo-c983a02724de273c6d0fdad00e8223b7aa6e276d.tar.gz
Don't use memory after we've freed it.
-rw-r--r--bench/wtperf/misc.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/bench/wtperf/misc.c b/bench/wtperf/misc.c
index 824c1dcc8b6..4946a260bec 100644
--- a/bench/wtperf/misc.c
+++ b/bench/wtperf/misc.c
@@ -44,8 +44,11 @@ enomem(const CONFIG *cfg)
int
setup_log_file(CONFIG *cfg)
{
+ int ret;
char *fname;
+ ret = 0;
+
if (cfg->verbose < 1)
return (0);
@@ -55,12 +58,13 @@ setup_log_file(CONFIG *cfg)
sprintf(fname, "%s/%s.stat", cfg->monitor_dir, cfg->table_name);
cfg->logf = fopen(fname, "w");
- free(fname);
-
if (cfg->logf == NULL) {
- fprintf(stderr, "%s: %s\n", fname, strerror(errno));
- return (errno);
+ ret = errno;
+ fprintf(stderr, "%s: %s\n", fname, strerror(ret));
}
+ free(fname);
+ if (cfg->logf == NULL)
+ return (ret);
/* Use line buffering for the log file. */
(void)setvbuf(cfg->logf, NULL, _IOLBF, 0);