summaryrefslogtreecommitdiff
path: root/radsecproxy.c
diff options
context:
space:
mode:
Diffstat (limited to 'radsecproxy.c')
-rw-r--r--radsecproxy.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/radsecproxy.c b/radsecproxy.c
index 11f168c..fae689f 100644
--- a/radsecproxy.c
+++ b/radsecproxy.c
@@ -979,15 +979,16 @@ void dorewriterm(struct radmsg *msg, uint8_t *rmattrs, uint32_t *rmvattrs) {
p = NULL;
n = list_first(msg->attrs);
while (n) {
- attr = (struct tlv *)n->data;
- if ((rmattrs && strchr((char *)rmattrs, attr->t)) ||
- (rmvattrs && attr->t == RAD_Attr_Vendor_Specific && dovendorrewriterm(attr, rmvattrs))) {
- list_removedata(msg->attrs, attr);
- freetlv(attr);
- n = p ? list_next(p) : list_first(msg->attrs);
- } else
- p = n;
- n = list_next(n);
+ attr = (struct tlv *)n->data;
+ if ((rmattrs && strchr((char *)rmattrs, attr->t)) ||
+ (rmvattrs && attr->t == RAD_Attr_Vendor_Specific && dovendorrewriterm(attr, rmvattrs))) {
+ list_removedata(msg->attrs, attr);
+ freetlv(attr);
+ n = p ? list_next(p) : list_first(msg->attrs);
+ } else {
+ p = n;
+ n = list_next(n);
+ }
}
}