From: Arran Cudbard-Bell Date: Tue, 29 Sep 2020 04:51:02 +0000 (-0500) Subject: Fix ubsan issue X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=028d8869b473cf33caf7d5e0d0aa2dedcf0ea75f;p=thirdparty%2Ffreeradius-server.git Fix ubsan issue --- diff --git a/src/lib/server/tmpl_eval.c b/src/lib/server/tmpl_eval.c index 200a06f04fa..96d4c1cc436 100644 --- a/src/lib/server/tmpl_eval.c +++ b/src/lib/server/tmpl_eval.c @@ -1162,7 +1162,6 @@ VALUE_PAIR *tmpl_cursor_init(int *err, TALLOC_CTX *ctx, tmpl_cursor_ctx_t *cc, } error: memset(cc, 0, sizeof(*cc)); /* so tmpl_cursor_clear doesn't explode */ - fr_dlist_init(&cc->nested, tmpl_cursor_nested_t, entry); return NULL; } } @@ -1232,6 +1231,8 @@ VALUE_PAIR *tmpl_cursor_init(int *err, TALLOC_CTX *ctx, tmpl_cursor_ctx_t *cc, */ void tmpl_cursor_clear(tmpl_cursor_ctx_t *cc) { + if (!fr_dlist_num_elements(&cc->nested)) return; /* Help simplify dealing with unused cursor ctxs */ + fr_dlist_remove(&cc->nested, &cc->leaf); /* Noop if leaf isn't inserted */ fr_dlist_talloc_free(&cc->nested); }