From: Vsevolod Stakhov Date: Wed, 20 Jul 2016 18:24:29 +0000 (+0100) Subject: [Fix] Do not abort when cannot load a map X-Git-Tag: 1.3.0~39 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c90ebed0c331c71f57eda2d2dcf092e95cdaae45;p=thirdparty%2Frspamd.git [Fix] Do not abort when cannot load a map --- diff --git a/src/lua/lua_map.c b/src/lua/lua_map.c index bd5dbbc36f..ba7d49149e 100644 --- a/src/lua/lua_map.c +++ b/src/lua/lua_map.c @@ -536,30 +536,32 @@ lua_map_get_key (lua_State * L) } } - if (addr != NULL) { - if (radix_find_compressed_addr (radix, addr->addr) - != RADIX_NO_VALUE) { - ret = TRUE; + if (radix) { + if (addr != NULL) { + if (radix_find_compressed_addr (radix, addr->addr) + != RADIX_NO_VALUE) { + ret = TRUE; + } } - } - else if (key_num != 0) { - if (radix_find_compressed (radix, (guint8 *)&key_num, sizeof (key_num)) - != RADIX_NO_VALUE) { - ret = TRUE; + else if (key_num != 0) { + if (radix_find_compressed (radix, (guint8 *)&key_num, sizeof (key_num)) + != RADIX_NO_VALUE) { + ret = TRUE; + } } } } else if (map->type == RSPAMD_LUA_MAP_SET) { key = lua_map_process_string_key (L, 2, &len); - if (key) { + if (key && map->data.hash) { ret = g_hash_table_lookup (map->data.hash, key) != NULL; } } else if (map->type == RSPAMD_LUA_MAP_REGEXP) { key = lua_map_process_string_key (L, 2, &len); - if (key) { + if (key && map->data.re_map) { value = rspamd_match_regexp_map (map->data.re_map, key, len); if (value) { @@ -572,7 +574,7 @@ lua_map_get_key (lua_State * L) /* key-value map */ key = lua_map_process_string_key (L, 2, &len); - if (key) { + if (key && map->data.hash) { value = g_hash_table_lookup (map->data.hash, key); }