]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
check correct variable, and allow "pos" to be NULL
authorAlan T. DeKok <aland@freeradius.org>
Thu, 11 Nov 2021 21:52:25 +0000 (16:52 -0500)
committerAlan T. DeKok <aland@freeradius.org>
Fri, 12 Nov 2021 15:42:49 +0000 (10:42 -0500)
which lets us insert things at the start of the list.

src/lib/util/pair.c
src/lib/util/pair.h

index b67e0d33e7a06eda205fce58d4992f70154a4d28..ad9615c356bcbd14816b7d38d3d4372a75efecfc 100644 (file)
@@ -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;
        }
index c12b1a815794fca9a46b201448be01e15a11bf1f..f3a55c81c9147a0802e29b9c630f7f574feb76c1 100644 (file)
@@ -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);