From: Alan T. DeKok Date: Thu, 11 Nov 2021 21:52:25 +0000 (-0500) Subject: check correct variable, and allow "pos" to be NULL X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6c8e6934481e8d833cee54dacbf13d89ad8ad202;p=thirdparty%2Ffreeradius-server.git check correct variable, and allow "pos" to be NULL which lets us insert things at the start of the list. --- diff --git a/src/lib/util/pair.c b/src/lib/util/pair.c index b67e0d33e7..ad9615c356 100644 --- a/src/lib/util/pair.c +++ b/src/lib/util/pair.c @@ -1036,7 +1036,7 @@ int fr_pair_insert_after(fr_pair_list_t *list, fr_pair_t *pos, fr_pair_t *to_add return -1; } - if (!fr_dlist_entry_in_list(&to_add->order_entry)) { + if (pos && !fr_dlist_entry_in_list(&pos->order_entry)) { fr_strerror_printf("Pair %pV not in list", pos); return -1; } @@ -1064,7 +1064,7 @@ int fr_pair_insert_before(fr_pair_list_t *list, fr_pair_t *pos, fr_pair_t *to_ad return -1; } - if (!fr_dlist_entry_in_list(&to_add->order_entry)) { + if (pos && !fr_dlist_entry_in_list(&pos->order_entry)) { fr_strerror_printf("Pair %pV not in list", pos); return -1; } diff --git a/src/lib/util/pair.h b/src/lib/util/pair.h index c12b1a8157..f3a55c81c9 100644 --- a/src/lib/util/pair.h +++ b/src/lib/util/pair.h @@ -285,9 +285,9 @@ int fr_pair_append(fr_pair_list_t *list, fr_pair_t *vp) CC_HINT(nonnull); int fr_pair_prepend(fr_pair_list_t *list, fr_pair_t *vp) CC_HINT(nonnull); -int fr_pair_insert_after(fr_pair_list_t *list, fr_pair_t *pos, fr_pair_t *to_add) CC_HINT(nonnull); +int fr_pair_insert_after(fr_pair_list_t *list, fr_pair_t *pos, fr_pair_t *to_add) CC_HINT(nonnull(1,3)); -int fr_pair_insert_before(fr_pair_list_t *list, fr_pair_t *pos, fr_pair_t *to_add) CC_HINT(nonnull); +int fr_pair_insert_before(fr_pair_list_t *list, fr_pair_t *pos, fr_pair_t *to_add) CC_HINT(nonnull(1,3)); void fr_pair_replace(fr_pair_list_t *list, fr_pair_t *to_replace, fr_pair_t *vp) CC_HINT(nonnull);