From 178e19d132e1d8b19d806afcc31f5d904edafd98 Mon Sep 17 00:00:00 2001 From: truckman Date: Mon, 16 May 2016 04:39:16 +0000 Subject: 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 --- usr.sbin/config/lang.l | 5 +++-- 1 file 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) { -- cgit v1.1