]> git.ipfire.org Git - thirdparty/ulogd2.git/commitdiff
output: SQLITE3: fix memory-leak in error-handling
authorJeremy Sowden <jeremy@azazel.net>
Tue, 30 Nov 2021 10:55:47 +0000 (10:55 +0000)
committerPablo Neira Ayuso <pablo@netfilter.org>
Mon, 6 Dec 2021 21:35:32 +0000 (22:35 +0100)
When mapping DB column names to input-keys, if we cannot find a key to
match a column, the newly allocated `struct field` is leaked.  Free it,
and log an error message.

Signed-off-by: Jeremy Sowden <jeremy@azazel.net>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
output/sqlite3/ulogd_output_SQLITE3.c

index 554b1b34488c0290f737c012be3c153c75fe8a88..41aeeec2785467a85ade236c7d4b1c30fb701ec6 100644 (file)
@@ -342,8 +342,12 @@ sqlite3_init_db(struct ulogd_pluginstance *pi)
                }
                strncpy(f->name, buf, ULOGD_MAX_KEYLEN);
 
-               if ((f->key = ulogd_find_key(pi, buf)) == NULL)
+               if ((f->key = ulogd_find_key(pi, buf)) == NULL) {
+                       ulogd_log(ULOGD_ERROR,
+                                 "SQLITE3: unknown input key: %s\n", buf);
+                       free(f);
                        return -1;
+               }
 
                TAILQ_INSERT_TAIL(&priv->fields, f, link);
        }