]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Fix ubsan issue
authorArran Cudbard-Bell <a.cudbardb@freeradius.org>
Tue, 29 Sep 2020 04:51:02 +0000 (23:51 -0500)
committerArran Cudbard-Bell <a.cudbardb@freeradius.org>
Tue, 29 Sep 2020 04:52:46 +0000 (23:52 -0500)
src/lib/server/tmpl_eval.c

index 200a06f04fa8028a4257a2b5286eff28525ec61f..96d4c1cc436fcf69b6c4f5853ec8b36c52ef661e 100644 (file)
@@ -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);
 }