From: mbellomi Date: Tue, 21 May 2019 13:32:48 +0000 (+0200) Subject: BUG/MEDIUM: WURFL: segfault in wurfl-get() with missing info. X-Git-Tag: v2.0-dev4~17 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d173e93aa76cd8c484f0d1eef7d0110fb4e37202;p=thirdparty%2Fhaproxy.git 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. --- diff --git a/src/wurfl.c b/src/wurfl.c index 325cba6496..7167a929f8 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 :