From dd8b877e6a80a474f3b7cc829ee2cac4f6e435d9 Mon Sep 17 00:00:00 2001 From: Mark Johnston Date: Sat, 30 May 2020 19:11:41 +0000 Subject: [PATCH] ctld: Fix a memory leak in uclparse_conf(). PR: 246596 Submitted by: Patryk MFC after: 1 week --- usr.sbin/ctld/uclparse.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/usr.sbin/ctld/uclparse.c b/usr.sbin/ctld/uclparse.c index 3d39da42569e..0652d2b4c684 100644 --- a/usr.sbin/ctld/uclparse.c +++ b/usr.sbin/ctld/uclparse.c @@ -914,6 +914,7 @@ int uclparse_conf(struct conf *newconf, const char *path) { struct ucl_parser *parser; + ucl_object_t *top; int error; conf = newconf; @@ -922,10 +923,14 @@ uclparse_conf(struct conf *newconf, const char *path) if (!ucl_parser_add_file(parser, path)) { log_warn("unable to parse configuration file %s: %s", path, ucl_parser_get_error(parser)); + ucl_parser_free(parser); return (1); } - error = uclparse_toplevel(ucl_parser_get_object(parser)); + top = ucl_parser_get_object(parser); + error = uclparse_toplevel(top); + ucl_object_unref(top); + ucl_parser_free(parser); return (error); }