)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1000030,"name":"MaxF","email":"max@max-fillinger.net","username":"MaxF"},"change_message_id":"f79bc885c6d314dc115040ea42dbd9c504f14284","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"1d690823_1b8b381c","updated":"2025-08-13 14:01:34.000000000","message":"The change makes sense to me, just some small nitpicks. If you strongly prefer doing it this way, I\u0027m willing to approve.","commit_id":"436c36d98717d0c1183d87c56591da41b1d3e8d0"}],"src/openvpn/mudp.c":[{"author":{"_account_id":1000030,"name":"MaxF","email":"max@max-fillinger.net","username":"MaxF"},"change_message_id":"f79bc885c6d314dc115040ea42dbd9c504f14284","unresolved":true,"context_lines":[{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        if (!ret)"},{"line_number":162,"context_line":"        {"},{"line_number":163,"context_line":"            msg(D_MULTI_MEDIUM, \"Packet (%s) with invalid or missing SID from %s\","},{"line_number":164,"context_line":"                packet_opcode_name(op), peer);"},{"line_number":165,"context_line":"        }"},{"line_number":166,"context_line":"        else"},{"line_number":167,"context_line":"        {"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"b8f6989e_8a8a01d2","line":164,"range":{"start_line":163,"start_character":0,"end_line":164,"end_character":46},"updated":"2025-08-13 14:01:34.000000000","message":"This debug message may now be incorrect. The packet might have a valid SID, but a wrong packet ID.","commit_id":"436c36d98717d0c1183d87c56591da41b1d3e8d0"},{"author":{"_account_id":1000003,"name":"plaisthos","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"change_message_id":"99c8e0da13b34693834e0784c665907f009b87aa","unresolved":false,"context_lines":[{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        if (!ret)"},{"line_number":162,"context_line":"        {"},{"line_number":163,"context_line":"            msg(D_MULTI_MEDIUM, \"Packet (%s) with invalid or missing SID from %s\","},{"line_number":164,"context_line":"                packet_opcode_name(op), peer);"},{"line_number":165,"context_line":"        }"},{"line_number":166,"context_line":"        else"},{"line_number":167,"context_line":"        {"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"3a04bad5_1d964253","line":164,"range":{"start_line":163,"start_character":0,"end_line":164,"end_character":46},"in_reply_to":"b8f6989e_8a8a01d2","updated":"2025-08-26 11:59:57.000000000","message":"Acknowledged","commit_id":"436c36d98717d0c1183d87c56591da41b1d3e8d0"},{"author":{"_account_id":1000030,"name":"MaxF","email":"max@max-fillinger.net","username":"MaxF"},"change_message_id":"c08c780b1cb577b794cbc387c206d52ba3cc7266","unresolved":false,"context_lines":[{"line_number":160,"context_line":""},{"line_number":161,"context_line":"        if (!ret)"},{"line_number":162,"context_line":"        {"},{"line_number":163,"context_line":"            msg(D_MULTI_MEDIUM, \"Packet (%s) with invalid or missing SID from %s\","},{"line_number":164,"context_line":"                packet_opcode_name(op), peer);"},{"line_number":165,"context_line":"        }"},{"line_number":166,"context_line":"        else"},{"line_number":167,"context_line":"        {"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"a89a1941_de7cae02","line":164,"range":{"start_line":163,"start_character":0,"end_line":164,"end_character":46},"in_reply_to":"b8f6989e_8a8a01d2","updated":"2025-08-19 13:59:56.000000000","message":"Done","commit_id":"436c36d98717d0c1183d87c56591da41b1d3e8d0"}],"src/openvpn/ssl_pkt.c":[{"author":{"_account_id":1000030,"name":"MaxF","email":"max@max-fillinger.net","username":"MaxF"},"change_message_id":"f79bc885c6d314dc115040ea42dbd9c504f14284","unresolved":true,"context_lines":[{"line_number":515,"context_line":"        return false;"},{"line_number":516,"context_line":"    }"},{"line_number":517,"context_line":""},{"line_number":518,"context_line":"    /* Check if the packet ID of the packet or ACKED packet  is \u003c\u003d 1 */"},{"line_number":519,"context_line":"    for (int i \u003d 0; i \u003c ack.len; i++)"},{"line_number":520,"context_line":"    {"},{"line_number":521,"context_line":"        /* This packet ACKs a packet that has a higher packet id than the"},{"line_number":522,"context_line":"         * ones expected in the three-way handshake, consider it as invalid"},{"line_number":523,"context_line":"         * for the session */"},{"line_number":524,"context_line":"        if (ack.packet_id[i] \u003e 1)"},{"line_number":525,"context_line":"        {"},{"line_number":526,"context_line":"            return false;"},{"line_number":527,"context_line":"        }"},{"line_number":528,"context_line":"    }"},{"line_number":529,"context_line":""},{"line_number":530,"context_line":"    if (!pkt_is_ack)"},{"line_number":531,"context_line":"    {"},{"line_number":532,"context_line":"        packet_id_type message_id;"},{"line_number":533,"context_line":"        /* Extract the packet ID from the packet */"},{"line_number":534,"context_line":"        if (!reliable_ack_read_packet_id(\u0026buf, \u0026message_id))"},{"line_number":535,"context_line":"        {"},{"line_number":536,"context_line":"            return false;"},{"line_number":537,"context_line":"        }"},{"line_number":538,"context_line":""},{"line_number":539,"context_line":"        /* similar check. Anything larger than 1 is not considered part of the"},{"line_number":540,"context_line":"         * three-way handshake */"},{"line_number":541,"context_line":"        if (message_id \u003e 1)"},{"line_number":542,"context_line":"        {"},{"line_number":543,"context_line":"            return false;"},{"line_number":544,"context_line":"        }"},{"line_number":545,"context_line":"    }"},{"line_number":546,"context_line":""},{"line_number":547,"context_line":""},{"line_number":548,"context_line":"    /* check adjacent timestamps too */"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"3d6e4bec_68a33598","line":545,"range":{"start_line":518,"start_character":0,"end_line":545,"end_character":5},"updated":"2025-08-13 14:01:34.000000000","message":"Maybe nitpicky, but this seems like scope creep for this function. Now check_session_id_hmac() does more than checking the hmac. I\u0027d prefer to extract this check to its own function, or rename this one.","commit_id":"436c36d98717d0c1183d87c56591da41b1d3e8d0"},{"author":{"_account_id":1000030,"name":"MaxF","email":"max@max-fillinger.net","username":"MaxF"},"change_message_id":"c08c780b1cb577b794cbc387c206d52ba3cc7266","unresolved":false,"context_lines":[{"line_number":515,"context_line":"        return false;"},{"line_number":516,"context_line":"    }"},{"line_number":517,"context_line":""},{"line_number":518,"context_line":"    /* Check if the packet ID of the packet or ACKED packet  is \u003c\u003d 1 */"},{"line_number":519,"context_line":"    for (int i \u003d 0; i \u003c ack.len; i++)"},{"line_number":520,"context_line":"    {"},{"line_number":521,"context_line":"        /* This packet ACKs a packet that has a higher packet id than the"},{"line_number":522,"context_line":"         * ones expected in the three-way handshake, consider it as invalid"},{"line_number":523,"context_line":"         * for the session */"},{"line_number":524,"context_line":"        if (ack.packet_id[i] \u003e 1)"},{"line_number":525,"context_line":"        {"},{"line_number":526,"context_line":"            return false;"},{"line_number":527,"context_line":"        }"},{"line_number":528,"context_line":"    }"},{"line_number":529,"context_line":""},{"line_number":530,"context_line":"    if (!pkt_is_ack)"},{"line_number":531,"context_line":"    {"},{"line_number":532,"context_line":"        packet_id_type message_id;"},{"line_number":533,"context_line":"        /* Extract the packet ID from the packet */"},{"line_number":534,"context_line":"        if (!reliable_ack_read_packet_id(\u0026buf, \u0026message_id))"},{"line_number":535,"context_line":"        {"},{"line_number":536,"context_line":"            return false;"},{"line_number":537,"context_line":"        }"},{"line_number":538,"context_line":""},{"line_number":539,"context_line":"        /* similar check. Anything larger than 1 is not considered part of the"},{"line_number":540,"context_line":"         * three-way handshake */"},{"line_number":541,"context_line":"        if (message_id \u003e 1)"},{"line_number":542,"context_line":"        {"},{"line_number":543,"context_line":"            return false;"},{"line_number":544,"context_line":"        }"},{"line_number":545,"context_line":"    }"},{"line_number":546,"context_line":""},{"line_number":547,"context_line":""},{"line_number":548,"context_line":"    /* check adjacent timestamps too */"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"333f0fff_e4904c7d","line":545,"range":{"start_line":518,"start_character":0,"end_line":545,"end_character":5},"in_reply_to":"3d6e4bec_68a33598","updated":"2025-08-19 13:59:56.000000000","message":"Done","commit_id":"436c36d98717d0c1183d87c56591da41b1d3e8d0"}],"tests/unit_tests/openvpn/test_pkt.c":[{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"f53b9687a1206d30d65e328d2963ff504d2966df","unresolved":true,"context_lines":[{"line_number":530,"context_line":"    /* Try test with the control with a too high message id now */"},{"line_number":531,"context_line":"    buf_reset_len(\u0026buf);"},{"line_number":532,"context_line":"    buf_write(\u0026buf, client_control_none_random_id, sizeof(client_control_none_random_id));"},{"line_number":533,"context_line":""},{"line_number":534,"context_line":"    verdict \u003d tls_pre_decrypt_lite(\u0026tas, \u0026state, \u0026from, \u0026buf);"},{"line_number":535,"context_line":"    assert_int_equal(verdict, VERDICT_VALID_CONTROL_V1);"},{"line_number":536,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":3,"id":"69758acd_c7222844","line":533,"updated":"2025-07-22 14:59:07.000000000","message":"Looking at the LeakSanitizer failure and the other test cases I think there is a `free_tls_pre_decrypt_state(\u0026state);` missing here.","commit_id":"06edba3fe8fa91db5804432aec8a4e698956a65c"},{"author":{"_account_id":1000003,"name":"plaisthos","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"change_message_id":"ae8260a326e471a54007156c75b5babe226013a9","unresolved":false,"context_lines":[{"line_number":530,"context_line":"    /* Try test with the control with a too high message id now */"},{"line_number":531,"context_line":"    buf_reset_len(\u0026buf);"},{"line_number":532,"context_line":"    buf_write(\u0026buf, client_control_none_random_id, sizeof(client_control_none_random_id));"},{"line_number":533,"context_line":""},{"line_number":534,"context_line":"    verdict \u003d tls_pre_decrypt_lite(\u0026tas, \u0026state, \u0026from, \u0026buf);"},{"line_number":535,"context_line":"    assert_int_equal(verdict, VERDICT_VALID_CONTROL_V1);"},{"line_number":536,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":3,"id":"95234b5f_2bb8c6f6","line":533,"in_reply_to":"69758acd_c7222844","updated":"2025-08-06 12:25:58.000000000","message":"Done","commit_id":"06edba3fe8fa91db5804432aec8a4e698956a65c"}]}
