summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortruckman <truckman@FreeBSD.org>2016-05-23 04:47:24 +0000
committertruckman <truckman@FreeBSD.org>2016-05-23 04:47:24 +0000
commit4cff368a1f829764bd94370c7edf16a4b7528036 (patch)
tree46797a5e5f11c30fa5e89861eba909991aa6a98c
parent00696f008cdaeffee0ad27318ec3df1b9ded92b9 (diff)
downloadFreeBSD-src-4cff368a1f829764bd94370c7edf16a4b7528036.zip
FreeBSD-src-4cff368a1f829764bd94370c7edf16a4b7528036.tar.gz
MFC r299893
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
-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