]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Alter eap_fast_decode_pair() to take fr_pair_list_t rather than cursor
authorNick Porter <nick@portercomputing.co.uk>
Fri, 8 Jan 2021 15:45:38 +0000 (15:45 +0000)
committerArran Cudbard-Bell <a.cudbardb@freeradius.org>
Thu, 21 Jan 2021 23:05:49 +0000 (23:05 +0000)
src/modules/rlm_eap/types/rlm_eap_fast/eap_fast.c
src/modules/rlm_eap/types/rlm_eap_fast/eap_fast.h
src/modules/rlm_eap/types/rlm_eap_fast/rlm_eap_fast.c

index e1429bfa42e9e50dc1dd4618c3b37998e1755419..957844cab5263cabe65a867873a6e5bd7c07e82a 100644 (file)
@@ -423,7 +423,7 @@ unexpected:
  *
  * FIXME do something with mandatory
  */
-ssize_t eap_fast_decode_pair(TALLOC_CTX *ctx, fr_cursor_t *cursor, fr_dict_attr_t const *parent,
+ssize_t eap_fast_decode_pair(TALLOC_CTX *ctx, fr_pair_list_t *out, fr_dict_attr_t const *parent,
                             uint8_t const *data, size_t data_len,
                             void *decoder_ctx)
 {
@@ -449,7 +449,7 @@ ssize_t eap_fast_decode_pair(TALLOC_CTX *ctx, fr_cursor_t *cursor, fr_dict_attr_
                        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, p, len, decoder_ctx);
+                       p += (size_t) eap_fast_decode_pair(ctx, out, parent, p, len, decoder_ctx);
                        continue;
 
                } else {
@@ -461,7 +461,7 @@ ssize_t eap_fast_decode_pair(TALLOC_CTX *ctx, fr_cursor_t *cursor, fr_dict_attr_
                        fr_pair_to_unknown(vp);
                        fr_pair_value_memdup(vp, p, len, true);
                }
-               fr_cursor_append(cursor, vp);
+               fr_pair_add(out, vp);
                p += len;
        }
 
@@ -897,7 +897,6 @@ FR_CODE eap_fast_process(request_t *request, eap_session_t *eap_session, fr_tls_
 {
        FR_CODE                 code;
        fr_pair_list_t          fast_vps;
-       fr_cursor_t             cursor;
        uint8_t const           *data;
        size_t                  data_len;
        eap_fast_tunnel_t       *t;
@@ -950,8 +949,7 @@ FR_CODE eap_fast_process(request_t *request, eap_session_t *eap_session, fr_tls_
                return FR_CODE_ACCESS_CHALLENGE;
        }
 
-       fr_cursor_init(&cursor, &fast_vps);
-       if (eap_fast_decode_pair(request, &cursor, attr_eap_fast_tlv,
+       if (eap_fast_decode_pair(request, &fast_vps, attr_eap_fast_tlv,
                                 data, data_len, NULL) < 0) return FR_CODE_ACCESS_REJECT;
 
        RDEBUG2("Got Tunneled FAST TLVs");
index ff01ad7486e04ba55f241f0db622f155e7bfb29c..06f09398db24cfb2a2c6a2c50f7cb77cf5111cc7 100644 (file)
@@ -258,6 +258,6 @@ FR_CODE eap_fast_process(request_t *request, eap_session_t *eap_session, fr_tls_
 /*
  *     A bunch of EAP-FAST helper functions.
  */
-ssize_t                eap_fast_decode_pair(TALLOC_CTX *ctx, fr_cursor_t *cursor, fr_dict_attr_t const *parent,
+ssize_t                eap_fast_decode_pair(TALLOC_CTX *ctx, fr_pair_list_t *out, fr_dict_attr_t const *parent,
                                     uint8_t const *data, size_t data_len,
                                     UNUSED void *decoder_ctx);
index 865b50471812e368a4662ff2c3d84593a060828f..ebafae4c6acdb504c81c83b8b402c936ad1a65ab 100644 (file)
@@ -383,7 +383,7 @@ error:
        RHEXDUMP3((uint8_t const *)&opaque_plaintext, plen, "PAC-Opaque plaintext data section");
 
        fr_cursor_init(&cursor, &fast_vps);
-       if (eap_fast_decode_pair(tls_session, &cursor, attr_eap_fast_pac_opaque_tlv, (uint8_t *)&opaque_plaintext, plen, NULL) < 0) {
+       if (eap_fast_decode_pair(tls_session, &fast_vps, attr_eap_fast_pac_opaque_tlv, (uint8_t *)&opaque_plaintext, plen, NULL) < 0) {
                errmsg = fr_strerror();
                goto error;
        }