]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Correctly remove pairs from "from" list in raidus_pairmove()
authorNick Porter <nick@portercomputing.co.uk>
Fri, 22 Jan 2021 18:25:44 +0000 (18:25 +0000)
committerArran Cudbard-Bell <a.cudbardb@freeradius.org>
Fri, 22 Jan 2021 19:35:47 +0000 (19:35 +0000)
and remove a stray debugging printf

src/lib/server/pairmove.c

index 47aaca6b26f523747a0d02c46ed35627eb7f82d5..a802cefa7cd10bf573742ba060241222ce7c28b6 100644 (file)
@@ -133,8 +133,10 @@ void radius_pairmove(request_t *request, fr_pair_list_t *to, fr_pair_list_t *fro
                                fr_pair_t *vp;
                                RDEBUG4("::: OVERWRITING %s FROM %d TO %d",
                                       to_vp->da->name, i, j);
+                               fr_pair_remove(from, from_vp);
                                vp = fr_dlist_replace(&to->head, to_vp, from_vp);
                                talloc_free(vp);
+                               from_vp = NULL;
                                edited[j] = true;
                                break;
                        }
@@ -167,7 +169,6 @@ void radius_pairmove(request_t *request, fr_pair_list_t *to, fr_pair_list_t *fro
                            (from_vp->op == T_OP_GE)) {
                                int rcode;
                                int old_op = from_vp->op;
-                               printf("Should get in here\n");
                                /*
                                 *      Check for equality.
                                 */
@@ -213,8 +214,10 @@ void radius_pairmove(request_t *request, fr_pair_list_t *to, fr_pair_list_t *fro
                                                fr_pair_t *vp;
                                                RDEBUG4("::: REPLACING %s FROM %d TO %d",
                                                       from_vp->da->name, i, j);
+                                               fr_pair_remove(from, from_vp);
                                                vp = fr_dlist_replace(&to->head, to_vp, from_vp);
                                                talloc_free(vp);
+                                               from_vp = NULL;
                                                edited[j] = true;
                                        }
                                        break;
@@ -224,8 +227,10 @@ void radius_pairmove(request_t *request, fr_pair_list_t *to, fr_pair_list_t *fro
                                                fr_pair_t *vp;
                                                RDEBUG4("::: REPLACING %s FROM %d TO %d",
                                                       from_vp->da->name, i, j);
+                                               fr_pair_remove(from, from_vp);
                                                vp = fr_dlist_replace(&to->head, to_vp, from_vp);
                                                talloc_free(vp);
+                                               from_vp = NULL;
                                                edited[j] = true;
                                        }
                                        break;