)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"b86112c49fa1df45444a1c241f2b0a8dcfda4a01","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"b6d55db9_721894ff","updated":"2026-01-20 13:46:42.000000000","message":"Weird t_client failures need to be investigated first.","commit_id":"b86ff238eeed9a3f9f22496f33e2051697356cb5"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"6e8a2071ac7131c87057241bf145c2798e080d48","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"bdd727eb_27952d11","in_reply_to":"b6d55db9_721894ff","updated":"2026-01-21 11:56:22.000000000","message":"Done","commit_id":"b86ff238eeed9a3f9f22496f33e2051697356cb5"}],"src/openvpn/options.c":[{"author":{"_account_id":1000053,"name":"razvanc","display_name":"Razvan Cojocaru","email":"razvanc@mailbox.org","username":"razvanc"},"change_message_id":"550bcb183eccf9370e1cb85764ee29e010226460","unresolved":true,"context_lines":[{"line_number":6537,"context_line":"    else if (streq(p[0], \"bind-dev\") \u0026\u0026 p[1])"},{"line_number":6538,"context_line":"    {"},{"line_number":6539,"context_line":"        VERIFY_PERMISSION(OPT_P_SOCKFLAGS);"},{"line_number":6540,"context_line":"        if (strlen(p[1]) \u003c\u003d IFNAMSIZ)"},{"line_number":6541,"context_line":"        {"},{"line_number":6542,"context_line":"            options-\u003ebind_dev \u003d p[1];"},{"line_number":6543,"context_line":"        }"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"fcd0ba0e_871fb010","line":6540,"updated":"2026-08-21 08:11:54.000000000","message":"This is an off-by-one issue.\n\nLinux uses `IFNAMSIZ` as the total length for these buffers (e.g. `char ifr_name[IFNAMSIZ];  /* Interface name */`), which means that includes the `NUL` terminator.\n\nI believe we want `\u003c` here (instead of `\u003c\u003d`).","commit_id":"dd05183025e196bede588b71b71b82807484f202"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"576afbefeccad924d4a08853f1334c545aef7685","unresolved":false,"context_lines":[{"line_number":6537,"context_line":"    else if (streq(p[0], \"bind-dev\") \u0026\u0026 p[1])"},{"line_number":6538,"context_line":"    {"},{"line_number":6539,"context_line":"        VERIFY_PERMISSION(OPT_P_SOCKFLAGS);"},{"line_number":6540,"context_line":"        if (strlen(p[1]) \u003c\u003d IFNAMSIZ)"},{"line_number":6541,"context_line":"        {"},{"line_number":6542,"context_line":"            options-\u003ebind_dev \u003d p[1];"},{"line_number":6543,"context_line":"        }"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"6ade29cb_9861fdfd","line":6540,"in_reply_to":"fcd0ba0e_871fb010","updated":"2026-08-24 10:47:37.000000000","message":"Done","commit_id":"dd05183025e196bede588b71b71b82807484f202"},{"author":{"_account_id":1000053,"name":"razvanc","display_name":"Razvan Cojocaru","email":"razvanc@mailbox.org","username":"razvanc"},"change_message_id":"550bcb183eccf9370e1cb85764ee29e010226460","unresolved":true,"context_lines":[{"line_number":6543,"context_line":"        }"},{"line_number":6544,"context_line":"        else"},{"line_number":6545,"context_line":"        {"},{"line_number":6546,"context_line":"            msg(msglevel, \"argument to --bind-dev is longer than allowed %u\", IFNAMSIZ);"},{"line_number":6547,"context_line":"            goto err;"},{"line_number":6548,"context_line":"        }"},{"line_number":6549,"context_line":"    }"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"0e07805a_1b855ae7","line":6546,"updated":"2026-08-21 08:11:54.000000000","message":"`IFNAMSIZ - 1`","commit_id":"dd05183025e196bede588b71b71b82807484f202"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"576afbefeccad924d4a08853f1334c545aef7685","unresolved":false,"context_lines":[{"line_number":6543,"context_line":"        }"},{"line_number":6544,"context_line":"        else"},{"line_number":6545,"context_line":"        {"},{"line_number":6546,"context_line":"            msg(msglevel, \"argument to --bind-dev is longer than allowed %u\", IFNAMSIZ);"},{"line_number":6547,"context_line":"            goto err;"},{"line_number":6548,"context_line":"        }"},{"line_number":6549,"context_line":"    }"}],"source_content_type":"text/x-csrc","patch_set":9,"id":"24675bba_c88f2f8b","line":6546,"in_reply_to":"0e07805a_1b855ae7","updated":"2026-08-24 10:47:37.000000000","message":"Done","commit_id":"dd05183025e196bede588b71b71b82807484f202"}],"src/openvpn/socket.c":[{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"e21d41cffc50f8cea4b01bdd5460ad386cb9fd61","unresolved":true,"context_lines":[{"line_number":2326,"context_line":"    mesg.msg_controllen \u003d (socklen_t)sizeof(pktinfo_buf);"},{"line_number":2327,"context_line":"    ssize_t len \u003d recvmsg(sock-\u003esd, \u0026mesg, 0);"},{"line_number":2328,"context_line":"    ASSERT(len \u003e\u003d INT_MIN \u0026\u0026 len \u003c\u003d INT_MAX);"},{"line_number":2329,"context_line":"    /* Note that we communicate recvmsg failure to caller here */"},{"line_number":2330,"context_line":"    buf-\u003elen \u003d (int)len;"},{"line_number":2331,"context_line":"    if (len \u003e\u003d 0)"},{"line_number":2332,"context_line":"    {"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"048d3998_99a13076","line":2329,"updated":"2026-03-02 17:39:51.000000000","message":"We probably should improve the code to not do things like that...","commit_id":"1bc5f7750f2c8100f7810b8ea0ca404e3d65dbac"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"6dcd4a76c1d92bf1ffd4b6ee4179781cecfe668a","unresolved":false,"context_lines":[{"line_number":2326,"context_line":"    mesg.msg_controllen \u003d (socklen_t)sizeof(pktinfo_buf);"},{"line_number":2327,"context_line":"    ssize_t len \u003d recvmsg(sock-\u003esd, \u0026mesg, 0);"},{"line_number":2328,"context_line":"    ASSERT(len \u003e\u003d INT_MIN \u0026\u0026 len \u003c\u003d INT_MAX);"},{"line_number":2329,"context_line":"    /* Note that we communicate recvmsg failure to caller here */"},{"line_number":2330,"context_line":"    buf-\u003elen \u003d (int)len;"},{"line_number":2331,"context_line":"    if (len \u003e\u003d 0)"},{"line_number":2332,"context_line":"    {"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"fab86987_29f4d200","line":2329,"in_reply_to":"048d3998_99a13076","updated":"2026-03-03 16:10:45.000000000","message":"Split out to separate patch.","commit_id":"1bc5f7750f2c8100f7810b8ea0ca404e3d65dbac"}]}
