]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
rlm_sigtran/m3ua: fix OPC list count and length in m3ua_send_reg_req
authorAlexander Bainbridge-Sedivy <alex.bainbridge@inkbridge.io>
Wed, 13 May 2026 14:40:02 +0000 (10:40 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Wed, 27 May 2026 20:22:42 +0000 (16:22 -0400)
src/modules/rlm_sigtran/libosmo-m3ua/sctp_m3ua_client.c

index de29f1a1a4e5fc0e772656b368101fb70c5e8114..654852bf6cbd5853145dbaef525d582af3d3eb6d 100644 (file)
@@ -881,7 +881,7 @@ static void m3ua_send_reg_req(struct mtp_m3ua_client_link *link, struct mtp_m3ua
                entry = NULL;
 
                len = 0;
-               llist_for_each(entry, &route->si) len++;
+               llist_for_each(entry, &route->opc) len++;
 
                p = val = talloc_zero_array(regreq, uint32_t, len);
                if (!p) {
@@ -892,7 +892,7 @@ static void m3ua_send_reg_req(struct mtp_m3ua_client_link *link, struct mtp_m3ua
 
                llist_for_each_entry(opc_ptr, &route->opc, list) *p++ = htonl(opc_ptr->opc);
 
-               xua_msg_add_data(regreq, M3UA_TAG_ORIG_PC_LIST, 4, (uint8_t *) val);    /* Packed as an array */
+               xua_msg_add_data(regreq, M3UA_TAG_ORIG_PC_LIST, len * sizeof(uint32_t), (uint8_t *) val);       /* Packed as an array */
                talloc_free(val);
        }