From a7c64a5b12f8f205b5e0b7f044052d9993e21fa7 Mon Sep 17 00:00:00 2001 From: Willy Tarreau Date: Wed, 3 Jun 2026 14:36:37 +0200 Subject: [PATCH] CLEANUP: map: always test pat->ref in sample_conv_map_key() sample_conf_map_key() calls pattern_exec_match() which may return a static pattern with ref=NULL when passed with fill=1 (which is the case) and pat->match == NULL (which doesn't seem to be the case). It doesn't seem it could happen with standard maps, as only "-m found" drops has a NULL ->match function and there's no keyword associated with it) but maybe this could happen with maps implemented in Lua, though this remains unlikely. Anyway better clarify the situation by always checking that the ref is non-null before dereferencing it, it will at least avoid warnings from code coverage tools. --- src/map.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/map.c b/src/map.c index dd4f63361..9bca28d8b 100644 --- a/src/map.c +++ b/src/map.c @@ -186,7 +186,7 @@ static int sample_conv_map_key(const struct arg *arg_p, struct sample *smp, void pat = pattern_exec_match(&desc->pat, smp, 1); /* Match case. */ - if (pat) { + if (pat && pat->ref) { smp->data.type = SMP_T_STR; smp->flags |= SMP_F_CONST; smp->data.u.str.area = (char *)pat->ref->pattern;