]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
daemon: fix DEREF_AFTER_NULL.EX.COND on worker_init (#1467)
authorPetr Vaganov <petrvaganoff@gmail.com>
Fri, 26 Jun 2026 11:42:29 +0000 (18:42 +0700)
committerGitHub <noreply@github.com>
Fri, 26 Jun 2026 11:42:29 +0000 (13:42 +0200)
Found by the static analyzer Svace (ISP RAS).

After having been compared to a NULL value at worker.c:2216,
pointer 'worker->stat_timer' is passed in call to function
'worker_restart_timer' at worker.c:2319,where it is
dereferenced at worker.c:2029.

Fix that stat_timer creation failure in worker_init does
not continue with a NULL timer that causes a crash later.

Signed-off-by: Petr Vaganov <petrvaganoff@gmail.com>
daemon/worker.c

index 5da8f76a705b8143c358d23b5367e7708ea0a062..7d76ffee07ea4804e42cfaf6e5c9f7239bb4c199 100644 (file)
@@ -2383,6 +2383,8 @@ worker_init(struct worker* worker, struct config_file *cfg,
                worker_stat_timer_cb, worker);
        if(!worker->stat_timer) {
                log_err("could not create statistics timer");
+               worker_delete(worker);
+               return 0;
        }
 
        /* we use the msg_buffer_size as a good estimate for what the