]> git.ipfire.org Git - thirdparty/ulogd2.git/commitdiff
output: DBI: fix configuration of DB connection
authorJeremy Sowden <jeremy@azazel.net>
Tue, 30 Nov 2021 10:55:42 +0000 (10:55 +0000)
committerPablo Neira Ayuso <pablo@netfilter.org>
Mon, 6 Dec 2021 21:27:45 +0000 (22:27 +0100)
In `open_db_dbi`, we test whether various config-settings are defined
by comparing their string values to `NULL`.  However, the `u.string`
member of `struct config_entry` is an array, not a pointer, so it is
never `NULL`.  Instead, check whether the string is empty.

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

index 57e3058036d953122e138c0459e85390b0752c6a..88af7a1473c32c593f56b5f44d295f8d9ada5fb0 100644 (file)
@@ -176,9 +176,9 @@ static int open_db_dbi(struct ulogd_pluginstance *upi)
 {
        struct dbi_instance *pi = (struct dbi_instance *) upi->private;
        char *server = host_ce(upi->config_kset).u.string;
-       char *user = user_ce(upi->config_kset).u.string;
-       char *pass = pass_ce(upi->config_kset).u.string;
-       char *db = db_ce(upi->config_kset).u.string;
+       char *user   = user_ce(upi->config_kset).u.string;
+       char *pass   = pass_ce(upi->config_kset).u.string;
+       char *db     = db_ce(upi->config_kset).u.string;
        char *dbtype = dbtype_ce(upi->config_kset).u.string;
        dbi_driver driver;
        int ret;
@@ -203,13 +203,13 @@ static int open_db_dbi(struct ulogd_pluginstance *upi)
                return -1;
        }
 
-       if (server)
+       if (server[0])
                dbi_conn_set_option(pi->dbh, "host", server);
-       if (user)
+       if (user[0])
                dbi_conn_set_option(pi->dbh, "username", user);
-       if (pass)
+       if (pass[0])
                dbi_conn_set_option(pi->dbh, "password", pass);
-       if (db)
+       if (db[0])
                dbi_conn_set_option(pi->dbh, "dbname", db);
 
        ret = dbi_conn_connect(pi->dbh);