)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"622ff2478ecf0fcf69f13c0cfb57ef6b001631b3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"6108cc68_eb61d42e","updated":"2026-06-22 14:00:36.000000000","message":"Broken build","commit_id":"516b6556e193aeb3a43c85599605d77fb38e68bb"}],"src/openvpn/multi.c":[{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"622ff2478ecf0fcf69f13c0cfb57ef6b001631b3","unresolved":true,"context_lines":[{"line_number":3127,"context_line":"    struct tls_multi *m1 \u003d mi-\u003econtext.c2.tls_multi;"},{"line_number":3128,"context_line":"    struct tls_multi *m2 \u003d ex_mi-\u003econtext.c2.tls_multi;"},{"line_number":3129,"context_line":""},{"line_number":3130,"context_line":"    struct gc_arena gc \u003d gc_new();"},{"line_number":3131,"context_line":"    int ret \u003d false;"},{"line_number":3132,"context_line":""},{"line_number":3133,"context_line":"    /* do not allow if target address is taken by client with another cert */"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"99128d05_87a18c70","line":3130,"updated":"2026-06-22 14:00:36.000000000","message":"```\nmulti.c:3130:21: error: redefinition of \u0027gc\u0027\n 3130 |     struct gc_arena gc \u003d gc_new();\n      |                     ^\nmulti.c:3111:21: note: previous definition is here\n 3111 |     struct gc_arena gc \u003d gc_new();\n      |                     ^\n```","commit_id":"516b6556e193aeb3a43c85599605d77fb38e68bb"},{"author":{"_account_id":1000003,"name":"plaisthos","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"change_message_id":"95972480b1c25f7fbfdf4cee01d25e6238633f09","unresolved":false,"context_lines":[{"line_number":3127,"context_line":"    struct tls_multi *m1 \u003d mi-\u003econtext.c2.tls_multi;"},{"line_number":3128,"context_line":"    struct tls_multi *m2 \u003d ex_mi-\u003econtext.c2.tls_multi;"},{"line_number":3129,"context_line":""},{"line_number":3130,"context_line":"    struct gc_arena gc \u003d gc_new();"},{"line_number":3131,"context_line":"    int ret \u003d false;"},{"line_number":3132,"context_line":""},{"line_number":3133,"context_line":"    /* do not allow if target address is taken by client with another cert */"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"c5cce27c_3fcac0b4","line":3130,"in_reply_to":"99128d05_87a18c70","updated":"2026-06-22 15:25:05.000000000","message":"Done","commit_id":"516b6556e193aeb3a43c85599605d77fb38e68bb"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"2d8fb7141350954da9ab178387273874ae49a690","unresolved":true,"context_lines":[{"line_number":3105,"context_line":"}"},{"line_number":3106,"context_line":""},{"line_number":3107,"context_line":"static bool"},{"line_number":3108,"context_line":"multi_check_dest_addr_allowed(struct multi_context *m, struct multi_instance *mi, struct mroute_addr *real)"},{"line_number":3109,"context_line":"{"},{"line_number":3110,"context_line":"    struct hash *hash \u003d m-\u003ehash;"},{"line_number":3111,"context_line":"    const uint64_t hv \u003d hash_value(hash, real);"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"7140175d_e2b8c40f","line":3108,"updated":"2026-06-24 14:30:24.000000000","message":"please add documentation for new functions","commit_id":"e2d45132404457d5aec9042793f893d4a28d721c"},{"author":{"_account_id":1000003,"name":"plaisthos","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"change_message_id":"6364ed3456fdab5b72a8a6ec1f37a77dcfb6e057","unresolved":false,"context_lines":[{"line_number":3105,"context_line":"}"},{"line_number":3106,"context_line":""},{"line_number":3107,"context_line":"static bool"},{"line_number":3108,"context_line":"multi_check_dest_addr_allowed(struct multi_context *m, struct multi_instance *mi, struct mroute_addr *real)"},{"line_number":3109,"context_line":"{"},{"line_number":3110,"context_line":"    struct hash *hash \u003d m-\u003ehash;"},{"line_number":3111,"context_line":"    const uint64_t hv \u003d hash_value(hash, real);"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"c3878726_8d460658","line":3108,"in_reply_to":"7140175d_e2b8c40f","updated":"2026-06-25 13:26:57.000000000","message":"Done","commit_id":"e2d45132404457d5aec9042793f893d4a28d721c"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"2d8fb7141350954da9ab178387273874ae49a690","unresolved":true,"context_lines":[{"line_number":3157,"context_line":"        \"using the same certificate\","},{"line_number":3158,"context_line":"        multi_instance_string(ex_mi, false, \u0026gc), multi_instance_string(mi, false, \u0026gc));"},{"line_number":3159,"context_line":"    multi_close_instance(m, ex_mi, false);"},{"line_number":3160,"context_line":"    return true;"},{"line_number":3161,"context_line":""},{"line_number":3162,"context_line":"done:"},{"line_number":3163,"context_line":"    gc_free(\u0026gc);"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"32ab1e90_2949bcce","line":3160,"updated":"2026-06-24 14:30:24.000000000","message":"this return is wrong and leads to memory leak","commit_id":"e2d45132404457d5aec9042793f893d4a28d721c"},{"author":{"_account_id":1000003,"name":"plaisthos","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"change_message_id":"6364ed3456fdab5b72a8a6ec1f37a77dcfb6e057","unresolved":false,"context_lines":[{"line_number":3157,"context_line":"        \"using the same certificate\","},{"line_number":3158,"context_line":"        multi_instance_string(ex_mi, false, \u0026gc), multi_instance_string(mi, false, \u0026gc));"},{"line_number":3159,"context_line":"    multi_close_instance(m, ex_mi, false);"},{"line_number":3160,"context_line":"    return true;"},{"line_number":3161,"context_line":""},{"line_number":3162,"context_line":"done:"},{"line_number":3163,"context_line":"    gc_free(\u0026gc);"}],"source_content_type":"text/x-csrc","patch_set":2,"id":"b6132ddf_970f1f5b","line":3160,"in_reply_to":"32ab1e90_2949bcce","updated":"2026-06-25 13:26:57.000000000","message":"Acknowledged","commit_id":"e2d45132404457d5aec9042793f893d4a28d721c"}]}
