]> source.dussan.org Git - rspamd.git/commitdiff
[Minor] --var doesn't work 3291/head
authorThierry Fournier <thierry.fournier@ozon.io>
Sat, 7 Mar 2020 09:57:10 +0000 (10:57 +0100)
committerThierry Fournier <thierry.fournier@ozon.io>
Sat, 7 Mar 2020 10:04:41 +0000 (11:04 +0100)
We can add varaibels on the command line after argument or using --var parameter.
When --var is used, an assertion is triggered:

   ./rspamd.install/bin/rspamd --var LOGDIR=/tmp/
   (rspamd:7171): GLib-CRITICAL **: g_hash_table_insert_internal: assertion 'hash_table != NULL' failed

The hash table is not initialized, because the table is initialized after
the argument parser.

This patch initialize the hash table on demand.

Note: the patch is tested on 1.9 version and not on master, because I can't compile the master branch.

Note: I suggest to backport the patch on 1.9 version

src/rspamd.c

index 6fbb64fdf6bc5dc1a252930cc7773bc8d03ff865..12f0cae2c7c319a2d342114a14c0061214d49cb4 100644 (file)
@@ -148,6 +148,11 @@ rspamd_parse_var (const gchar *option_name,
                v = g_strdup (t + 1);
                *t = '\0';
 
+               if (ucl_vars == NULL) {
+                       ucl_vars = g_hash_table_new_full (rspamd_strcase_hash,
+                                       rspamd_strcase_equal, g_free, g_free);
+               }
+
                g_hash_table_insert (ucl_vars, k, v);
        }
        else {