]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
We probably don't need the tmplist here...
authorArran Cudbard-Bell <a.cudbardb@freeradius.org>
Thu, 7 Oct 2021 01:35:26 +0000 (20:35 -0500)
committerArran Cudbard-Bell <a.cudbardb@freeradius.org>
Thu, 7 Oct 2021 01:48:15 +0000 (20:48 -0500)
src/lib/util/pair.c
src/lib/util/pair.h

index 2a06ac6f8962b946404e26ab7de937705d05a7b4..7ca6e68f2f32690be56e96b21e405332289d315d 100644 (file)
@@ -786,8 +786,6 @@ void fr_pair_replace(fr_pair_list_t *list, fr_pair_t *replace)
        fr_pair_append(list, replace);
 }
 
-}
-
 /** Alloc a new fr_pair_t (and append)
  *
  * @param[in] ctx      to allocate new #fr_pair_t in.
@@ -1499,7 +1497,6 @@ int fr_pair_list_copy_by_da(TALLOC_CTX *ctx, fr_pair_list_t *to,
 int fr_pair_list_copy_by_ancestor(TALLOC_CTX *ctx, fr_pair_list_t *to,
                                  fr_pair_list_t *from, fr_dict_attr_t const *parent_da, unsigned int count)
 {
-       fr_pair_list_t  tmp_list;
        fr_pair_t       *vp, *new_vp;
        unsigned int    cnt = 0;
 
@@ -1510,8 +1507,6 @@ int fr_pair_list_copy_by_ancestor(TALLOC_CTX *ctx, fr_pair_list_t *to,
                return -1;
        }
 
-       fr_pair_list_init(&tmp_list);
-
        for (vp = fr_pair_list_head(from);
             vp && (cnt < count);
             vp = fr_pair_list_next(from, vp)) {
@@ -1520,15 +1515,10 @@ int fr_pair_list_copy_by_ancestor(TALLOC_CTX *ctx, fr_pair_list_t *to,
 
                VP_VERIFY(vp);
                new_vp = fr_pair_copy(ctx, vp);
-               if (!new_vp) {
-                       fr_pair_list_free(&tmp_list);
-                       return -1;
-               }
-               fr_pair_append(&tmp_list, new_vp);
+               if (unlikely(!new_vp)) return -1;
+               fr_pair_append(to, new_vp);
        }
 
-       fr_dlist_move(&to->order, &tmp_list.order);
-
        return cnt;
 }
 
@@ -1547,26 +1537,18 @@ int fr_pair_list_copy_by_ancestor(TALLOC_CTX *ctx, fr_pair_list_t *to,
  */
 int fr_pair_sublist_copy(TALLOC_CTX *ctx, fr_pair_list_t *to, fr_pair_list_t const *from, fr_pair_t *item)
 {
-       fr_pair_list_t  tmp_list;
        fr_pair_t       *vp, *new_vp;
        int             cnt = 0;
 
-       fr_pair_list_init(&tmp_list);
-
        for (vp = item;
             vp;
             vp = fr_pair_list_next(from, vp), cnt++) {
                VP_VERIFY(vp);
                new_vp = fr_pair_copy(ctx, vp);
-               if (!new_vp) {
-                       fr_pair_list_free(&tmp_list);
-                       return -1;
-               }
-               fr_pair_append(&tmp_list, new_vp);
+               if (unlikely(!new_vp)) return -1;
+               fr_pair_append(to, new_vp);
        }
 
-       fr_dlist_move(&to->order, &tmp_list.order);
-
        return cnt;
 }
 
index 5bd043c5cfb1a7655bf7bd99aa26a949dcc351a5..42e98a54f1aada5c4a909d3b998d32c85cd868c2 100644 (file)
@@ -248,7 +248,7 @@ int         fr_pair_prepend(fr_pair_list_t *list, fr_pair_t *vp);
 
 void           fr_pair_replace(fr_pair_list_t *list, fr_pair_t *add);
 
-void           fr_pair_delete_by_child_num(fr_pair_list_t *list, fr_dict_attr_t const *parent, unsigned int attr);
+int            fr_pair_delete_by_child_num(fr_pair_list_t *list, fr_dict_attr_t const *parent, unsigned int attr);
 
 int            fr_pair_append_by_da(TALLOC_CTX *ctx, fr_pair_t **out, fr_pair_list_t *list, fr_dict_attr_t const *da);