From 4a802da8d598c6fe3317e186b64a0b020cc96f01 Mon Sep 17 00:00:00 2001 From: Tavian Barnes Date: Wed, 24 Apr 2024 11:36:51 -0400 Subject: opt: Add missing NULL check in visit_shallow() visit_shallow() should propagate NULL, but look_up_visitor() dereferences expr to know which visitor to return. --- src/opt.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/opt.c b/src/opt.c index ffc795b..883d598 100644 --- a/src/opt.c +++ b/src/opt.c @@ -947,8 +947,12 @@ static struct bfs_expr *visit_shallow(struct bfs_opt *opt, struct bfs_expr *expr expr = general(opt, expr, visitor); } + if (!expr) { + return NULL; + } + visit_fn *specific = look_up_visitor(expr, visitor->table); - if (expr && specific) { + if (specific) { expr = specific(opt, expr, visitor); } -- cgit v1.2.3