Use libcanard to send getinfo responce problem

I am using an STM32 with Libcanard and the C code provided above to send a Cyphal/CAN uavcan.node.GetInfo.Response. However, the messages received (as seen in the attached CAN log images) appear corrupted. Specifically, the last CAN frame of the transfer contains extra garbage bytes (BC 10) appended after the expected payload (32 00 00, which should represent the end of the ‘name’ string and the zero counts for CRC and CoA). This corruption prevents Yakut from successfully parsing the GetInfo response and leads to transport errors being reported. Could the provided C code be responsible for this issue?

#define MY_NODE_NAME "org.stm32.12"
#define MY_SW_VERSION_MAJOR 1
#define MY_SW_VERSION_MINOR 0
#define MY_HW_VERSION_MAJOR 0
#define MY_HW_VERSION_MINOR 1
if (transfer->metadata.transfer_kind == CanardTransferKindRequest &&
        transfer->metadata.port_id == uavcan_node_GetInfo_1_0_FIXED_PORT_ID_)
    {
        // Received a GetInfo request targeted at us (or broadcast)

        // 1. (Optional) Deserialize the request payload (it should be empty)
        uavcan_node_GetInfo_Request_1_0 req;
        size_t req_payload_size = transfer->payload_size;
        if (uavcan_node_GetInfo_Request_1_0_deserialize_(&req, transfer->payload, &req_payload_size) < 0) {
            // Deserialization failed (though payload is empty, this check might catch framing issues)
            // Log error, but maybe still proceed to respond? Or ignore.
        }

        // 2. Prepare the response payload
        uavcan_node_GetInfo_Response_1_0 response = {0}; // Initialize all fields to zero/empty

        // -- Populate mandatory fields --
        response.protocol_version.major = CANARD_CYPHAL_SPECIFICATION_VERSION_MAJOR;
        response.protocol_version.minor = CANARD_CYPHAL_SPECIFICATION_VERSION_MINOR;

        response.hardware_version.major = MY_HW_VERSION_MAJOR;
        response.hardware_version.minor = MY_HW_VERSION_MINOR;

        response.software_version.major = MY_SW_VERSION_MAJOR;
        response.software_version.minor = MY_SW_VERSION_MINOR;

        // -- Populate optional fields --
        response.software_vcs_revision_id = 0; // Or use actual Git commit hash ID if available

        get_unique_id(response.unique_id); // Fill the 16-byte unique ID array

        // Set the node name (ensure null termination and check length)
        strncpy((char*)response.name.elements, MY_NODE_NAME, sizeof(response.name.elements) - 1);
        //response.name.elements[sizeof(response.name.elements) - 1] = '\0'; // Ensure null termination
        response.name.elements[sizeof(response.name.elements)] ; // Ensure null termination
        response.name.count = strlen((char*)response.name.elements);

        // software_image_crc and certificate_of_authenticity are optional
        response.software_image_crc.count = 0; // No CRC available
        response.certificate_of_authenticity.count = 0; // No CoA available


        // 3. Serialize the response
        getinfo_response_ser_buf_size = sizeof(getinfo_response_ser_buf); // Reset size before use
        int8_t ser_res = uavcan_node_GetInfo_Response_1_0_serialize_(&response, getinfo_response_ser_buf, &getinfo_response_ser_buf_size);

        if (ser_res >= 0)
        {
            // 4. Prepare response metadata
            CanardTransferMetadata response_metadata = {
                .priority = CanardPriorityNominal, // Respond with nominal priority
                .transfer_kind = CanardTransferKindResponse, // *** This is a RESPONSE ***
                .port_id = uavcan_node_GetInfo_1_0_FIXED_PORT_ID_, // Use the same service Port ID
                .remote_node_id = transfer->metadata.remote_node_id, // *** Respond TO the requester ***
                .transfer_id = transfer->metadata.transfer_id, // *** Use the SAME transfer ID ***
            };

            // 5. Push response to the TX queue
            canardTxPush(&queue, &canard, 0, &response_metadata, getinfo_response_ser_buf_size, getinfo_response_ser_buf);

            // Ignore push errors for now, or log them
        }


Could you provide the message as text to copy instead of pictures? Are you using BXCan or HAL CAN?