)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"acfa86132d152189e0d66e8e2dc3e534a4822b0e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"fdcbb154_5d3a26c2","updated":"2026-07-22 15:22:55.000000000","message":"LGTM","commit_id":"e00d04feda433cd8d84584c85ab90f6f0cc6518a"}],"src/openvpn/ssl_verify_mbedtls.c":[{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"301a0a4a98cb5f5e451eda7e84678e1e45b9c3a2","unresolved":true,"context_lines":[{"line_number":242,"context_line":"                continue;"},{"line_number":243,"context_line":"            }"},{"line_number":244,"context_line":"            leading_zeros \u003d false;"},{"line_number":245,"context_line":"            if (cn_index \u003e\u003d cn_len)"},{"line_number":246,"context_line":"            {"},{"line_number":247,"context_line":"                goto fail;"},{"line_number":248,"context_line":"            }"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"eefeceba_1fd4e696","line":245,"updated":"2026-07-22 13:29:05.000000000","message":"Strictly speaking we can abort here if `\u003e\u003d cn_len -1` since we always write 2 characters","commit_id":"c2377404b5dc4a9c545ab38800bb5af606130c82"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"acfa86132d152189e0d66e8e2dc3e534a4822b0e","unresolved":false,"context_lines":[{"line_number":242,"context_line":"                continue;"},{"line_number":243,"context_line":"            }"},{"line_number":244,"context_line":"            leading_zeros \u003d false;"},{"line_number":245,"context_line":"            if (cn_index \u003e\u003d cn_len)"},{"line_number":246,"context_line":"            {"},{"line_number":247,"context_line":"                goto fail;"},{"line_number":248,"context_line":"            }"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"9e2b6e26_a24dfe50","line":245,"in_reply_to":"eefeceba_1fd4e696","updated":"2026-07-22 15:22:55.000000000","message":"Done","commit_id":"c2377404b5dc4a9c545ab38800bb5af606130c82"},{"author":{"_account_id":1000030,"name":"MaxF","email":"max@max-fillinger.net","username":"MaxF"},"change_message_id":"beae26f594bf27a77672b79febf54944f0dbaf67","unresolved":true,"context_lines":[{"line_number":242,"context_line":"                continue;"},{"line_number":243,"context_line":"            }"},{"line_number":244,"context_line":"            leading_zeros \u003d false;"},{"line_number":245,"context_line":"            if (cn_index \u003e\u003d cn_len)"},{"line_number":246,"context_line":"            {"},{"line_number":247,"context_line":"                goto fail;"},{"line_number":248,"context_line":"            }"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"9a79f378_a3860b2f","line":245,"in_reply_to":"eefeceba_1fd4e696","updated":"2026-07-22 15:20:17.000000000","message":"I think the check should be cn_index \u003e cn_len - 3, because we also need room for the \u0027/0\u0027 byte.","commit_id":"c2377404b5dc4a9c545ab38800bb5af606130c82"}],"tests/unit_tests/openvpn/test_ssl.c":[{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"301a0a4a98cb5f5e451eda7e84678e1e45b9c3a2","unresolved":true,"context_lines":[{"line_number":841,"context_line":"    assert_string_equal(username, cert_details_cname);"},{"line_number":842,"context_line":"    assert_int_equal(ret, SUCCESS);"},{"line_number":843,"context_line":""},{"line_number":844,"context_line":"    ret \u003d backend_x509_get_username(username, sizeof(username), \"serialNumber\", cert);"},{"line_number":845,"context_line":"    assert_int_equal(ret, SUCCESS);"},{"line_number":846,"context_line":"    assert_string_equal(username, \"0x283B1933E3C0A4675A0F6405F6261AC68149024A\");"},{"line_number":847,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":2,"id":"320a3e9c_7e456dd6","line":844,"updated":"2026-07-22 13:29:05.000000000","message":"Probably should add an additional test to exercise the length checks?","commit_id":"c2377404b5dc4a9c545ab38800bb5af606130c82"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"acfa86132d152189e0d66e8e2dc3e534a4822b0e","unresolved":false,"context_lines":[{"line_number":841,"context_line":"    assert_string_equal(username, cert_details_cname);"},{"line_number":842,"context_line":"    assert_int_equal(ret, SUCCESS);"},{"line_number":843,"context_line":""},{"line_number":844,"context_line":"    ret \u003d backend_x509_get_username(username, sizeof(username), \"serialNumber\", cert);"},{"line_number":845,"context_line":"    assert_int_equal(ret, SUCCESS);"},{"line_number":846,"context_line":"    assert_string_equal(username, \"0x283B1933E3C0A4675A0F6405F6261AC68149024A\");"},{"line_number":847,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":2,"id":"baa6a772_cecadb27","line":844,"in_reply_to":"320a3e9c_7e456dd6","updated":"2026-07-22 15:22:55.000000000","message":"Done","commit_id":"c2377404b5dc4a9c545ab38800bb5af606130c82"},{"author":{"_account_id":1000030,"name":"MaxF","email":"max@max-fillinger.net","username":"MaxF"},"change_message_id":"beae26f594bf27a77672b79febf54944f0dbaf67","unresolved":true,"context_lines":[{"line_number":841,"context_line":"    assert_string_equal(username, cert_details_cname);"},{"line_number":842,"context_line":"    assert_int_equal(ret, SUCCESS);"},{"line_number":843,"context_line":""},{"line_number":844,"context_line":"    ret \u003d backend_x509_get_username(username, sizeof(username), \"serialNumber\", cert);"},{"line_number":845,"context_line":"    assert_int_equal(ret, SUCCESS);"},{"line_number":846,"context_line":"    assert_string_equal(username, \"0x283B1933E3C0A4675A0F6405F6261AC68149024A\");"},{"line_number":847,"context_line":""}],"source_content_type":"text/x-csrc","patch_set":2,"id":"e0f5f42c_5c365a91","line":844,"in_reply_to":"320a3e9c_7e456dd6","updated":"2026-07-22 15:20:17.000000000","message":"I added that, and I noticed that the OpenSSL and Mbed TLS functions behaved differently when the buffer was too small. (The Mbed TLS version silently truncated the output.) So now I\u0027ve also changed the behavior of the Mbed TLS function to match the OpenSSL version.","commit_id":"c2377404b5dc4a9c545ab38800bb5af606130c82"}]}
