From: Alan T. DeKok Date: Sat, 23 Sep 2017 01:46:49 +0000 (-0400) Subject: recurse on decode TLVs, instead of !TLV X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f82cf68e92ea037e25d9641beae37d4388b6dbff;p=thirdparty%2Ffreeradius-server.git recurse on decode TLVs, instead of !TLV and decode the contents of the TLV, instead of TLV itself --- diff --git a/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast.c b/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast.c index 4df0e86a7f7..3dc9dc34bfa 100644 --- a/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast.c +++ b/src/modules/rlm_eap/types/rlm_eap_fast/eap_fast.c @@ -450,9 +450,11 @@ ssize_t eap_fast_decode_pair(TALLOC_CTX *ctx, vp_cursor_t *cursor, fr_dict_attr_ da = fr_dict_attr_child_by_num(parent, attr); if (!da) { MEM(vp = fr_pair_afrom_child_num(ctx, parent, attr)); - } else if (da->type != FR_TYPE_TLV) { - p += (size_t) eap_fast_decode_pair(ctx, cursor, parent, data, data_len, decoder_ctx); + + } else if (da->type == FR_TYPE_TLV) { + p += (size_t) eap_fast_decode_pair(ctx, cursor, parent, p, end - p, decoder_ctx); continue; + } else { MEM(vp = fr_pair_afrom_da(ctx, da)); }