From d173e93aa76cd8c484f0d1eef7d0110fb4e37202 Mon Sep 17 00:00:00 2001 From: mbellomi Date: Tue, 21 May 2019 15:32:48 +0200 Subject: [PATCH] BUG/MEDIUM: WURFL: segfault in wurfl-get() with missing info. A segfault may happen in ha_wurfl_get() when dereferencing information not present in wurfl-information-list. Check the node retrieved from the tree, not its container. This fix must be backported to 1.9. --- src/wurfl.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/wurfl.c b/src/wurfl.c index 325cba649..7167a929f 100644 --- a/src/wurfl.c +++ b/src/wurfl.c @@ -514,9 +514,10 @@ static int ha_wurfl_get(const struct arg *args, struct sample *smp, const char * while (args[i].data.str.area) { chunk_appendf(temp, "%c", global_wurfl.information_list_separator); node = ebst_lookup(&global_wurfl.btree, args[i].data.str.area); - wn = container_of(node, wurfl_data_t, nd); - if (wn) { + if (node) { + + wn = container_of(node, wurfl_data_t, nd); switch(wn->type) { case HA_WURFL_DATA_TYPE_UNKNOWN :