From: Arran Cudbard-Bell Date: Fri, 15 Sep 2017 07:25:41 +0000 (+0700) Subject: Remove the VP from the cursor before freeing X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e167aaff9a01fac85b092f84d309d8f86f1d80ec;p=thirdparty%2Ffreeradius-server.git Remove the VP from the cursor before freeing That way the cursor doesn't contain references to already freed memory. --- diff --git a/src/lib/util/pair.c b/src/lib/util/pair.c index e16b327cb93..594cd2966cd 100644 --- a/src/lib/util/pair.c +++ b/src/lib/util/pair.c @@ -538,13 +538,10 @@ void fr_pair_list_free(VALUE_PAIR **vps) VALUE_PAIR *vp; fr_cursor_t cursor; - if (!vps || !*vps) { - return; - } + if (!vps || !*vps) return; - for (vp = fr_cursor_init(&cursor, vps); - vp; - vp = fr_cursor_next(&cursor)) { + fr_cursor_init(&cursor, vps); + while ((vp = fr_cursor_remove(&cursor))) { VP_VERIFY(vp); talloc_free(vp); }