)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"2e552775d2fd1b6c07bd90a3d4dd765fee2e810e","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"6f90bff0_f748fa2e","updated":"2025-01-21 14:53:17.000000000","message":"LGTM, but would be a good opportunity to move the code to options_util.c and add unittests?","commit_id":"848250e8a0835e73b179100f2615bdf7cd8884bf"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"9a49b0e676989a949b3e1c589867ae67b7dca9b2","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"f30963d7_c71411a4","updated":"2025-01-22 12:04:32.000000000","message":"Windows builds fail","commit_id":"848250e8a0835e73b179100f2615bdf7cd8884bf"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"2fa5d04f6b56ed31723f62c3bfceff4602384c49","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"33511411_1209d71b","in_reply_to":"f30963d7_c71411a4","updated":"2025-01-22 15:58:10.000000000","message":"Done","commit_id":"848250e8a0835e73b179100f2615bdf7cd8884bf"},{"author":{"_account_id":1000003,"name":"plaisthos","display_name":"Arne Schwabe","email":"arne-openvpn@rfc2549.org","username":"plaisthos"},"change_message_id":"422c672d4c519da6290518e5107e4a266a3ff971","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"0dc52a71_9e6d07c1","updated":"2025-01-24 17:42:09.000000000","message":"need to fix external-auth corner case","commit_id":"246e43f3830e22e6632ec91c480441792b8d4a2a"},{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"447f3f7e790b20759a7a2e14ea83e911991459e0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"752d6975_05a45cfd","updated":"2025-01-27 10:07:40.000000000","message":"close... I spotted one missing `p[2]` (I think)","commit_id":"8bc647f6be96007aebe90e7b3d8fc21e781c381f"},{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"eea36f7b9087466d4cf5a5b20c19025add47a699","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"027ced7d_08015caa","updated":"2025-01-27 11:30:31.000000000","message":"fine with me, passes all my tests and stare-at-code finds no more mis-indexes.","commit_id":"ed40007823a202e67ab36bd88f27df2945a1ec32"}],"src/openvpn/options.c":[{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"58f7f6d9875f82e09cc09445e89c14982f30b72d","unresolved":true,"context_lines":[{"line_number":4936,"context_line":"    char *endptr;"},{"line_number":4937,"context_line":"    long long i \u003d strtoll(str, \u0026endptr, 10);"},{"line_number":4938,"context_line":""},{"line_number":4939,"context_line":"    if (i \u003c 0 || endptr || i \u003e INT_MAX)"},{"line_number":4940,"context_line":"    {"},{"line_number":4941,"context_line":"        msg(msglevel, \"Cannot parse argument \u0027%s\u0027 as non-negative integer\","},{"line_number":4942,"context_line":"            str);"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"a064c05a_92fbd9c8","line":4939,"updated":"2025-01-21 13:28:25.000000000","message":"Should probably be *endptr? Basically we want to check that it is \\0, right?\n\nt_server fails with:\n\"Options error: Cannot parse argument \u00272\u0027 as non-negative integer\"","commit_id":"bc116a607afc9e8dcfe1a9882cfc592b889c4454"},{"author":{"_account_id":1000001,"name":"flichtenheld","display_name":"Frank Lichtenheld","email":"frank@lichtenheld.com","username":"flichtenheld","status":"OpenVPN Inc."},"change_message_id":"2e552775d2fd1b6c07bd90a3d4dd765fee2e810e","unresolved":false,"context_lines":[{"line_number":4936,"context_line":"    char *endptr;"},{"line_number":4937,"context_line":"    long long i \u003d strtoll(str, \u0026endptr, 10);"},{"line_number":4938,"context_line":""},{"line_number":4939,"context_line":"    if (i \u003c 0 || endptr || i \u003e INT_MAX)"},{"line_number":4940,"context_line":"    {"},{"line_number":4941,"context_line":"        msg(msglevel, \"Cannot parse argument \u0027%s\u0027 as non-negative integer\","},{"line_number":4942,"context_line":"            str);"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"299b83cd_d792bac7","line":4939,"in_reply_to":"a064c05a_92fbd9c8","updated":"2025-01-21 14:53:17.000000000","message":"Done","commit_id":"bc116a607afc9e8dcfe1a9882cfc592b889c4454"},{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"447f3f7e790b20759a7a2e14ea83e911991459e0","unresolved":true,"context_lines":[{"line_number":7640,"context_line":""},{"line_number":7641,"context_line":"        VERIFY_PERMISSION(OPT_P_GENERAL);"},{"line_number":7642,"context_line":"        real \u003d atoi_warn(p[1], msglevel);"},{"line_number":7643,"context_line":"        virtual \u003d atoi_warn(p[1], msglevel);"},{"line_number":7644,"context_line":"        if (real \u003c 1 || virtual \u003c 1)"},{"line_number":7645,"context_line":"        {"},{"line_number":7646,"context_line":"            msg(msglevel, \"--hash-size sizes must be \u003e\u003d 1 (preferably a power of 2)\");"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"f1a9a25e_d219c846","line":7643,"updated":"2025-01-27 10:07:40.000000000","message":"wrong array element","commit_id":"8bc647f6be96007aebe90e7b3d8fc21e781c381f"},{"author":{"_account_id":1000002,"name":"cron2","display_name":"Gert Doering","email":"gert@greenie.muc.de","username":"cron2"},"change_message_id":"eea36f7b9087466d4cf5a5b20c19025add47a699","unresolved":false,"context_lines":[{"line_number":7640,"context_line":""},{"line_number":7641,"context_line":"        VERIFY_PERMISSION(OPT_P_GENERAL);"},{"line_number":7642,"context_line":"        real \u003d atoi_warn(p[1], msglevel);"},{"line_number":7643,"context_line":"        virtual \u003d atoi_warn(p[1], msglevel);"},{"line_number":7644,"context_line":"        if (real \u003c 1 || virtual \u003c 1)"},{"line_number":7645,"context_line":"        {"},{"line_number":7646,"context_line":"            msg(msglevel, \"--hash-size sizes must be \u003e\u003d 1 (preferably a power of 2)\");"}],"source_content_type":"text/x-csrc","patch_set":5,"id":"c3edb0c3_b04a8431","line":7643,"in_reply_to":"f1a9a25e_d219c846","updated":"2025-01-27 11:30:31.000000000","message":"Done","commit_id":"8bc647f6be96007aebe90e7b3d8fc21e781c381f"}]}
