From: Nick Porter Date: Wed, 15 Oct 2025 16:36:43 +0000 (+0100) Subject: Add optional dict_attr to encode / decode ctx alloc signature X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6c7b38cc478537d550a6cbb7ebbbde62c5730d8a;p=thirdparty%2Ffreeradius-server.git Add optional dict_attr to encode / decode ctx alloc signature To allow a root DA to be specified for the encoding / decoding context --- diff --git a/src/bin/fuzzer.c b/src/bin/fuzzer.c index a36eca7dd1..2fdafeb3b5 100644 --- a/src/bin/fuzzer.c +++ b/src/bin/fuzzer.c @@ -264,7 +264,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *buf, size_t len) fr_pair_list_init(&vps); if (!init) LLVMFuzzerInitialize(NULL, NULL); - if (tp->test_ctx && (tp->test_ctx(&decode_ctx, NULL, dict) < 0)) { + if (tp->test_ctx && (tp->test_ctx(&decode_ctx, NULL, dict, NULL) < 0)) { fr_perror("fuzzer: Failed initializing test point decode_ctx"); fr_exit_now(EXIT_FAILURE); } diff --git a/src/bin/unit_test_attribute.c b/src/bin/unit_test_attribute.c index 95d8dcf0d0..b4b2d473fc 100644 --- a/src/bin/unit_test_attribute.c +++ b/src/bin/unit_test_attribute.c @@ -1662,7 +1662,7 @@ static size_t command_decode_pair(command_result_t *result, command_file_ctx_t * p += slen; fr_skip_whitespace(p); - if (tp->test_ctx && (tp->test_ctx(&decode_ctx, cc->tmp_ctx, dictionary_current(cc)) < 0)) { + if (tp->test_ctx && (tp->test_ctx(&decode_ctx, cc->tmp_ctx, dictionary_current(cc), NULL) < 0)) { fr_strerror_const_push("Failed initialising decoder testpoint"); RETURN_COMMAND_ERROR(); } @@ -1763,7 +1763,7 @@ static size_t command_decode_proto(command_result_t *result, command_file_ctx_t p += slen; fr_skip_whitespace(p); - if (tp->test_ctx && (tp->test_ctx(&decode_ctx, cc->tmp_ctx, dictionary_current(cc)) < 0)) { + if (tp->test_ctx && (tp->test_ctx(&decode_ctx, cc->tmp_ctx, dictionary_current(cc), NULL) < 0)) { fr_strerror_const_push("Failed initialising decoder testpoint"); RETURN_COMMAND_ERROR(); } @@ -1996,7 +1996,7 @@ static size_t command_encode_pair(command_result_t *result, command_file_ctx_t * fr_skip_whitespace(p); } - if (tp->test_ctx && (tp->test_ctx(&encode_ctx, cc->tmp_ctx, dictionary_current(cc)) < 0)) { + if (tp->test_ctx && (tp->test_ctx(&encode_ctx, cc->tmp_ctx, dictionary_current(cc), NULL) < 0)) { fr_strerror_const_push("Failed initialising encoder testpoint"); CLEAR_TEST_POINT(cc); RETURN_COMMAND_ERROR(); @@ -2215,7 +2215,7 @@ static size_t command_encode_proto(command_result_t *result, command_file_ctx_t p += ((size_t)slen); fr_skip_whitespace(p); - if (tp->test_ctx && (tp->test_ctx(&encode_ctx, cc->tmp_ctx, dictionary_current(cc)) < 0)) { + if (tp->test_ctx && (tp->test_ctx(&encode_ctx, cc->tmp_ctx, dictionary_current(cc), NULL) < 0)) { fr_strerror_const_push("Failed initialising encoder testpoint"); CLEAR_TEST_POINT(cc); RETURN_COMMAND_ERROR(); diff --git a/src/lib/eap_aka_sim/decode.c b/src/lib/eap_aka_sim/decode.c index 2b18253a25..b287b445ab 100644 --- a/src/lib/eap_aka_sim/decode.c +++ b/src/lib/eap_aka_sim/decode.c @@ -1023,7 +1023,8 @@ static fr_aka_sim_ctx_t *test_ctx_init(TALLOC_CTX *ctx, uint8_t const *k_encr, s /* * Test ctx data */ -static int decode_test_ctx_sim(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t const *dict) +static int decode_test_ctx_sim(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t const *dict, + UNUSED fr_dict_attr_t const *root_da) { fr_aka_sim_ctx_t *test_ctx; static uint8_t k_encr[] = { 0x00, 0x01, 0x02, 0x03, 0x04 ,0x05, 0x06, 0x07, @@ -1040,7 +1041,8 @@ static int decode_test_ctx_sim(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t con } -static int decode_test_ctx_aka(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t const *dict) +static int decode_test_ctx_aka(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t const *dict, + UNUSED fr_dict_attr_t const *root_da) { fr_aka_sim_ctx_t *test_ctx; static uint8_t k_encr[] = { 0x00, 0x01, 0x02, 0x03, 0x04 ,0x05, 0x06, 0x07, @@ -1056,7 +1058,8 @@ static int decode_test_ctx_aka(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t con return 0; } -static int decode_test_ctx_sim_rfc4186(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t const *dict) +static int decode_test_ctx_sim_rfc4186(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t const *dict, + UNUSED fr_dict_attr_t const *root_da) { fr_aka_sim_ctx_t *test_ctx; static uint8_t k_encr[] = { 0x53, 0x6e, 0x5e, 0xbc, 0x44 ,0x65, 0x58, 0x2a, diff --git a/src/lib/eap_aka_sim/encode.c b/src/lib/eap_aka_sim/encode.c index 5a9578f431..96b505f775 100644 --- a/src/lib/eap_aka_sim/encode.c +++ b/src/lib/eap_aka_sim/encode.c @@ -1020,7 +1020,8 @@ static fr_aka_sim_ctx_t *test_ctx_init(TALLOC_CTX *ctx, uint8_t const *k_encr, s /* * Test ctx data */ -static int encode_test_ctx_sim(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t const *dict) +static int encode_test_ctx_sim(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t const *dict, + UNUSED fr_dict_attr_t const *root_da) { fr_aka_sim_ctx_t *test_ctx; static uint8_t k_encr[] = { 0x00, 0x01, 0x02, 0x03, 0x04 ,0x05, 0x06, 0x07, @@ -1036,7 +1037,8 @@ static int encode_test_ctx_sim(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t con return 0; } -static int encode_test_ctx_aka(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t const *dict) +static int encode_test_ctx_aka(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t const *dict, + UNUSED fr_dict_attr_t const *root_da) { fr_aka_sim_ctx_t *test_ctx; static uint8_t k_encr[] = { 0x00, 0x01, 0x02, 0x03, 0x04 ,0x05, 0x06, 0x07, @@ -1052,7 +1054,8 @@ static int encode_test_ctx_aka(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t con return 0; } -static int encode_test_ctx_sim_rfc4186(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t const *dict) +static int encode_test_ctx_sim_rfc4186(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t const *dict, + UNUSED fr_dict_attr_t const *root_da) { fr_aka_sim_ctx_t *test_ctx; static uint8_t k_encr[] = { 0x53, 0x6e, 0x5e, 0xbc, 0x44 ,0x65, 0x58, 0x2a, diff --git a/src/lib/io/test_point.h b/src/lib/io/test_point.h index 584bf1d74f..60a335f16c 100644 --- a/src/lib/io/test_point.h +++ b/src/lib/io/test_point.h @@ -24,9 +24,10 @@ * @param[out] out Where the decoder context should be written. * @param[in] ctx to allocate the test point context in. * @param[in] dict the default dictionary context for the test point + * @param[in] root_da Optional root DA for the encoder/decoder ctx. * @return proto or pair encoder or decoder ctx. */ -typedef int (*fr_test_point_ctx_alloc_t)(void **out, TALLOC_CTX *ctx, fr_dict_t const *dict); +typedef int (*fr_test_point_ctx_alloc_t)(void **out, TALLOC_CTX *ctx, fr_dict_t const *dict, fr_dict_attr_t const *root_da); /** A generic interface for decoding packets to fr_pair_ts * diff --git a/src/lib/unlang/xlat_builtin.c b/src/lib/unlang/xlat_builtin.c index a28f9200b6..6ef1392fe9 100644 --- a/src/lib/unlang/xlat_builtin.c +++ b/src/lib/unlang/xlat_builtin.c @@ -4071,7 +4071,7 @@ static xlat_action_t protocol_decode_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out, } if (tp_decode->test_ctx) { - if (tp_decode->test_ctx(&decode_ctx, ctx, request->proto_dict) < 0) { + if (tp_decode->test_ctx(&decode_ctx, ctx, request->proto_dict, NULL) < 0) { return XLAT_ACTION_FAIL; } } @@ -4189,7 +4189,7 @@ static xlat_action_t protocol_encode_xlat(TALLOC_CTX *ctx, fr_dcursor_t *out, * Create the encoding context. */ if (tp_encode->test_ctx) { - if (tp_encode->test_ctx(&encode_ctx, cursor, request->proto_dict) < 0) { + if (tp_encode->test_ctx(&encode_ctx, cursor, request->proto_dict, NULL) < 0) { return XLAT_ACTION_FAIL; } } diff --git a/src/lib/util/fuzzer.c b/src/lib/util/fuzzer.c index ffbd1de143..fb8d615b2d 100644 --- a/src/lib/util/fuzzer.c +++ b/src/lib/util/fuzzer.c @@ -24,7 +24,8 @@ RCSID("$Id$") #include -static int decode_test_ctx(void **out, UNUSED TALLOC_CTX *ctx, UNUSED fr_dict_t const *dict) +static int decode_test_ctx(void **out, UNUSED TALLOC_CTX *ctx, UNUSED fr_dict_t const *dict, + UNUSED fr_dict_attr_t const *root_da) { *out = NULL; return 0; diff --git a/src/protocols/arp/base.c b/src/protocols/arp/base.c index e117e92627..e196931c71 100644 --- a/src/protocols/arp/base.c +++ b/src/protocols/arp/base.c @@ -393,7 +393,8 @@ typedef struct { bool tmp; } fr_arp_ctx_t; -static int encode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t const *dict) +static int encode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t const *dict, + UNUSED fr_dict_attr_t const *root_da) { fr_arp_ctx_t *test_ctx; diff --git a/src/protocols/bfd/decode.c b/src/protocols/bfd/decode.c index e2788a0ea0..869c0953c5 100644 --- a/src/protocols/bfd/decode.c +++ b/src/protocols/bfd/decode.c @@ -99,7 +99,8 @@ ssize_t fr_bfd_decode(TALLOC_CTX *ctx, fr_pair_list_t *out, return slen; } -static int decode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t const *dict) +static int decode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t const *dict, + UNUSED fr_dict_attr_t const *root_da) { fr_bfd_ctx_t *test_ctx; diff --git a/src/protocols/bfd/encode.c b/src/protocols/bfd/encode.c index 232a68bda8..3c4a19a523 100644 --- a/src/protocols/bfd/encode.c +++ b/src/protocols/bfd/encode.c @@ -162,7 +162,8 @@ ssize_t fr_bfd_encode(uint8_t *out, size_t outlen, UNUSED uint8_t const *origina } -static int encode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t const *dict) +static int encode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t const *dict, + UNUSED fr_dict_attr_t const *root_da) { fr_bfd_ctx_t *test_ctx; diff --git a/src/protocols/cbor/base.c b/src/protocols/cbor/base.c index 7d55f2306d..77c31d3de5 100644 --- a/src/protocols/cbor/base.c +++ b/src/protocols/cbor/base.c @@ -70,7 +70,8 @@ fr_test_point_pair_decode_t cbor_tp_decode_pair = { .func = decode_pair }; -static int decode_test_ctx(void **out, UNUSED TALLOC_CTX *ctx, fr_dict_t const *dict) +static int decode_test_ctx(void **out, UNUSED TALLOC_CTX *ctx, fr_dict_t const *dict, + UNUSED fr_dict_attr_t const *root_da) { *out = UNCONST(fr_dict_t *, dict); diff --git a/src/protocols/der/decode.c b/src/protocols/der/decode.c index c2b5106593..f8f5dcb70f 100644 --- a/src/protocols/der/decode.c +++ b/src/protocols/der/decode.c @@ -2679,7 +2679,8 @@ static ssize_t decode_pair(TALLOC_CTX *ctx, fr_pair_list_t *out, fr_dict_attr_t /* * Test points */ -static int decode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t const *dict) +static int decode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t const *dict, + UNUSED fr_dict_attr_t const *root_da) { fr_der_decode_ctx_t *test_ctx; diff --git a/src/protocols/der/encode.c b/src/protocols/der/encode.c index f7db2e46f1..0485ffef38 100644 --- a/src/protocols/der/encode.c +++ b/src/protocols/der/encode.c @@ -1799,7 +1799,8 @@ static ssize_t fr_der_encode_proto(UNUSED TALLOC_CTX *ctx, fr_pair_list_t *vps, /* * Test points */ -static int encode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t const *dict) +static int encode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t const *dict, + UNUSED fr_dict_attr_t const *root_da) { fr_der_encode_ctx_t *test_ctx; diff --git a/src/protocols/dhcpv4/decode.c b/src/protocols/dhcpv4/decode.c index 9f798a0484..876b09a666 100644 --- a/src/protocols/dhcpv4/decode.c +++ b/src/protocols/dhcpv4/decode.c @@ -704,12 +704,14 @@ ssize_t fr_dhcpv4_decode_foreign(TALLOC_CTX *ctx, fr_pair_list_t *out, } -static int decode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t const *dict) +static int decode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t const *dict, + fr_dict_attr_t const *root_da) { fr_dhcpv4_ctx_t *test_ctx; test_ctx = talloc_zero(ctx, fr_dhcpv4_ctx_t); test_ctx->tmp_ctx = talloc(test_ctx, uint8_t); + test_ctx->root = root_da; *out = test_ctx; diff --git a/src/protocols/dhcpv4/encode.c b/src/protocols/dhcpv4/encode.c index 529b9bec99..05bf83aea5 100644 --- a/src/protocols/dhcpv4/encode.c +++ b/src/protocols/dhcpv4/encode.c @@ -807,13 +807,14 @@ static ssize_t fr_dhcpv4_encode_proto(UNUSED TALLOC_CTX *ctx, fr_pair_list_t *vp return fr_dhcpv4_encode_dbuff(&FR_DBUFF_TMP(data, data_len), NULL, 0, 0, vps); } -static int encode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t const *dict) +static int encode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t const *dict, + fr_dict_attr_t const *root_da) { fr_dhcpv4_ctx_t *test_ctx; test_ctx = talloc_zero(ctx, fr_dhcpv4_ctx_t); if (!test_ctx) return -1; - test_ctx->root = fr_dict_root(dict_dhcpv4); + test_ctx->root = root_da ? root_da : fr_dict_root(dict_dhcpv4); *out = test_ctx; diff --git a/src/protocols/dhcpv6/decode.c b/src/protocols/dhcpv6/decode.c index 962463de50..73d7a40ef6 100644 --- a/src/protocols/dhcpv6/decode.c +++ b/src/protocols/dhcpv6/decode.c @@ -500,7 +500,8 @@ ssize_t fr_dhcpv6_decode_foreign(TALLOC_CTX *ctx, fr_pair_list_t *out, return data_len; } -static int decode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t const *dict) +static int decode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t const *dict, + UNUSED fr_dict_attr_t const *root_da) { fr_dhcpv6_decode_ctx_t *test_ctx; diff --git a/src/protocols/dhcpv6/encode.c b/src/protocols/dhcpv6/encode.c index f1b1cd6985..07af95ba49 100644 --- a/src/protocols/dhcpv6/encode.c +++ b/src/protocols/dhcpv6/encode.c @@ -749,7 +749,8 @@ ssize_t fr_dhcpv6_encode_foreign(fr_dbuff_t *dbuff, fr_pair_list_t const *list) } -static int encode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t const *dict) +static int encode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t const *dict, + UNUSED fr_dict_attr_t const *root_da) { fr_dhcpv6_encode_ctx_t *test_ctx; diff --git a/src/protocols/dns/decode.c b/src/protocols/dns/decode.c index d237a297b9..3ad88d6f59 100644 --- a/src/protocols/dns/decode.c +++ b/src/protocols/dns/decode.c @@ -372,7 +372,8 @@ static ssize_t decode_rr(TALLOC_CTX *ctx, fr_pair_list_t *out, UNUSED fr_dict_at /* * Test points */ -static int decode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t const *dict) +static int decode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t const *dict, + UNUSED fr_dict_attr_t const *root_da) { fr_dns_ctx_t *test_ctx; diff --git a/src/protocols/dns/encode.c b/src/protocols/dns/encode.c index 18d7f6a4ca..1f7fc5f439 100644 --- a/src/protocols/dns/encode.c +++ b/src/protocols/dns/encode.c @@ -509,7 +509,8 @@ ssize_t fr_dns_encode(fr_dbuff_t *dbuff, fr_pair_list_t *vps, fr_dns_ctx_t *pack return fr_dbuff_set(dbuff, &work_dbuff); } -static int encode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t const *dict) +static int encode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t const *dict, + UNUSED fr_dict_attr_t const *root_da) { fr_dns_ctx_t *test_ctx; diff --git a/src/protocols/radius/decode.c b/src/protocols/radius/decode.c index babe538d1b..ccdebc98bc 100644 --- a/src/protocols/radius/decode.c +++ b/src/protocols/radius/decode.c @@ -2142,7 +2142,8 @@ static int _test_ctx_free(fr_radius_decode_ctx_t *ctx) return 0; } -static int decode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t const *dict) +static int decode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t const *dict, + UNUSED fr_dict_attr_t const *root_da) { static uint8_t vector[RADIUS_AUTH_VECTOR_LENGTH] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/src/protocols/radius/encode.c b/src/protocols/radius/encode.c index 867e4b9f31..e280e81865 100644 --- a/src/protocols/radius/encode.c +++ b/src/protocols/radius/encode.c @@ -1707,7 +1707,8 @@ ssize_t fr_radius_encode_foreign(fr_dbuff_t *dbuff, fr_pair_list_t const *list) } -static int encode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t const *dict) +static int encode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t const *dict, + UNUSED fr_dict_attr_t const *root_da) { static uint8_t vector[RADIUS_AUTH_VECTOR_LENGTH] = { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, diff --git a/src/protocols/tacacs/decode.c b/src/protocols/tacacs/decode.c index ad7d42c971..2b9c3eb6f4 100644 --- a/src/protocols/tacacs/decode.c +++ b/src/protocols/tacacs/decode.c @@ -1088,7 +1088,8 @@ static int _encode_test_ctx(fr_tacacs_ctx_t *proto_ctx) return 0; } -static int decode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t const *dict) +static int decode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t const *dict, + UNUSED fr_dict_attr_t const *root_da) { fr_tacacs_ctx_t *test_ctx; diff --git a/src/protocols/tacacs/encode.c b/src/protocols/tacacs/encode.c index b601b19bd5..fa4d3b194e 100644 --- a/src/protocols/tacacs/encode.c +++ b/src/protocols/tacacs/encode.c @@ -1057,7 +1057,8 @@ static int _encode_test_ctx(fr_tacacs_ctx_t *proto_ctx) return 0; } -static int encode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t const *dict) +static int encode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t const *dict, + UNUSED fr_dict_attr_t const *root_da) { fr_tacacs_ctx_t *test_ctx; diff --git a/src/protocols/tftp/decode.c b/src/protocols/tftp/decode.c index 23a8e9734a..693a9fdc17 100644 --- a/src/protocols/tftp/decode.c +++ b/src/protocols/tftp/decode.c @@ -292,7 +292,8 @@ static int _decode_test_ctx(UNUSED fr_tftp_ctx_t *proto_ctx) return 0; } -static int decode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t const *dict) +static int decode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t const *dict, + UNUSED fr_dict_attr_t const *root_da) { fr_tftp_ctx_t *test_ctx; diff --git a/src/protocols/tftp/encode.c b/src/protocols/tftp/encode.c index 6cdc22349d..448661d57e 100644 --- a/src/protocols/tftp/encode.c +++ b/src/protocols/tftp/encode.c @@ -254,7 +254,8 @@ static int _encode_test_ctx(UNUSED fr_tftp_ctx_t *proto_ctx) return 0; } -static int encode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t const *dict) +static int encode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t const *dict, + UNUSED fr_dict_attr_t const *root_da) { fr_tftp_ctx_t *test_ctx; diff --git a/src/protocols/vmps/vmps.c b/src/protocols/vmps/vmps.c index 137ce952f0..9ca073ffef 100644 --- a/src/protocols/vmps/vmps.c +++ b/src/protocols/vmps/vmps.c @@ -521,7 +521,8 @@ static int _decode_test_ctx(UNUSED fr_vmps_ctx_t *proto_ctx) return 0; } -static int decode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t const *dict) +static int decode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t const *dict, + UNUSED fr_dict_attr_t const *root_da) { fr_vmps_ctx_t *test_ctx; @@ -562,7 +563,8 @@ static int _encode_test_ctx(UNUSED fr_vmps_ctx_t *proto_ctx) return 0; } -static int encode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t const *dict) +static int encode_test_ctx(void **out, TALLOC_CTX *ctx, UNUSED fr_dict_t const *dict, + UNUSED fr_dict_attr_t const *root_da) { fr_vmps_ctx_t *test_ctx;