summaryrefslogtreecommitdiffstats
path: root/usr.sbin
diff options
context:
space:
mode:
authortruckman <truckman@FreeBSD.org>2016-05-16 04:39:16 +0000
committertruckman <truckman@FreeBSD.org>2016-05-16 04:39:16 +0000
commit178e19d132e1d8b19d806afcc31f5d904edafd98 (patch)
tree9b0332c6d1c1b20344e80f316b3b4d30e27b6fd0 /usr.sbin
parent9a6b37a52effc5da8adb38a423c513e38eedd4b0 (diff)
downloadFreeBSD-src-178e19d132e1d8b19d806afcc31f5d904edafd98.zip
FreeBSD-src-178e19d132e1d8b19d806afcc31f5d904edafd98.tar.gz
Don't free fnamebuf before we calling cfgfile_add(). This changes a
use-after-free error into a minor memory leak. Reported by: Coverity CID: 1006084
Diffstat (limited to 'usr.sbin')
-rw-r--r--usr.sbin/config/lang.l5
1 files changed, 3 insertions, 2 deletions
diff --git a/usr.sbin/config/lang.l b/usr.sbin/config/lang.l
index 14fa7da..a13d1eb 100644
--- a/usr.sbin/config/lang.l
+++ b/usr.sbin/config/lang.l
@@ -267,7 +267,8 @@ include(const char *fname, int ateof)
asprintf(&fnamebuf, "../../conf/%s", fname);
if (fnamebuf != NULL) {
fp = fopen(fnamebuf, "r");
- free(fnamebuf);
+ if (fp == NULL)
+ free(fnamebuf);
}
}
if (fp == NULL) {
@@ -275,10 +276,10 @@ include(const char *fname, int ateof)
asprintf(&fnamebuf, "%s/%s", ipath->path, fname);
if (fnamebuf != NULL) {
fp = fopen(fnamebuf, "r");
- free(fnamebuf);
}
if (fp != NULL)
break;
+ free(fnamebuf);
}
}
if (fp == NULL) {
OpenPOWER on IntegriCloud