)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":1001667,"name":"Jan Matyas","email":"jan.matyas@codasip.com","username":"JanMatCodasip"},"change_message_id":"382bd532b2aeee8a2626b4d4fb6dc6902fa95928","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"ae0c1650_938022bd","updated":"2026-06-02 07:56:24.000000000","message":"Please consider re-opening this merge request: It looks like both you and the author of [1] saw the duplicates and both have abandoned their patches. ;-)","commit_id":"dd17354a250626967fe422d056cf23d5a3c9c314"},{"author":{"_account_id":1002524,"name":"Aurore Poirier","email":"aurore.poirier@scisemi.com","username":"aurore-poirier"},"change_message_id":"1a311fdaded40a84ef02274bda1e8d3d2edd522c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"faaf32f1_79532a24","in_reply_to":"ae0c1650_938022bd","updated":"2026-06-02 09:07:57.000000000","message":"Done, it indeed was kinda buried ^^\"","commit_id":"dd17354a250626967fe422d056cf23d5a3c9c314"},{"author":{"_account_id":1001667,"name":"Jan Matyas","email":"jan.matyas@codasip.com","username":"JanMatCodasip"},"change_message_id":"08c4c36ff4e64468d4a3bf412317d5f566d22393","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":4,"id":"534e4b9f_6169a00d","updated":"2026-06-02 10:13:55.000000000","message":"Checked visually and LGTM. Thank you for the patch.","commit_id":"b841ee8b8b43d9d9f29ab0f8eec39ba7d14c5b0b"},{"author":{"_account_id":1002524,"name":"Aurore Poirier","email":"aurore.poirier@scisemi.com","username":"aurore-poirier"},"change_message_id":"1a311fdaded40a84ef02274bda1e8d3d2edd522c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"47e5d974_470471c7","updated":"2026-06-02 09:07:57.000000000","message":"Thank you for the review! I was a bit eager to commit the last patches, i hope everything is good on the string length size now","commit_id":"b841ee8b8b43d9d9f29ab0f8eec39ba7d14c5b0b"},{"author":{"_account_id":1001667,"name":"Jan Matyas","email":"jan.matyas@codasip.com","username":"JanMatCodasip"},"change_message_id":"c35b13020c5842728325ace11e2291419d5d80dd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"7b930f6c_d3a63ae3","in_reply_to":"534e4b9f_6169a00d","updated":"2026-06-02 10:14:26.000000000","message":"Done","commit_id":"b841ee8b8b43d9d9f29ab0f8eec39ba7d14c5b0b"},{"author":{"_account_id":1002524,"name":"Aurore Poirier","email":"aurore.poirier@scisemi.com","username":"aurore-poirier"},"change_message_id":"008360be30895b7cb944254607e1508142eef89f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"37892cbf_37892723","updated":"2026-06-02 12:07:56.000000000","message":"Fixed spacing","commit_id":"c9a1456aa5aa2092ee16d2133e9cf70521f8f6f3"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"80fdeb1118d8181d2e15118a1fb4b606d24fb17a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"86d256aa_c096c6cd","updated":"2026-06-09 08:49:48.000000000","message":"Oops, same patch sent in 9529, missed it!\nSince 9529 was sent before this, I would prefer merging that one.\nAnyway, both need rework after the merge of 9712","commit_id":"c9a1456aa5aa2092ee16d2133e9cf70521f8f6f3"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"da73016e60a34396f86e5e9ebb9243b10c6f5d83","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"69c3e89d_9ed745f4","updated":"2026-06-09 08:08:30.000000000","message":"Thanks for this patch. Please check my comment below.","commit_id":"c9a1456aa5aa2092ee16d2133e9cf70521f8f6f3"},{"author":{"_account_id":1000853,"name":"zapb","display_name":"Marc Schink","email":"dev@zapb.de","username":"zapb"},"change_message_id":"b6f039faecd536986bbd1a8c434dacc834853cf7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"3d3b2b99_9f86bf65","updated":"2026-06-03 13:57:35.000000000","message":"Thanks, tested with GCC 16.1.1","commit_id":"c9a1456aa5aa2092ee16d2133e9cf70521f8f6f3"}],"src/jtag/drivers/vdebug.c":[{"author":{"_account_id":1001667,"name":"Jan Matyas","email":"jan.matyas@codasip.com","username":"JanMatCodasip"},"change_message_id":"66212121459b79f78593b879f17cc5cfbf3392a1","unresolved":true,"context_lines":[{"line_number":1219,"context_line":"\t\treturn ERROR_COMMAND_SYNTAX_ERROR;"},{"line_number":1220,"context_line":""},{"line_number":1221,"context_line":"\tconst char *pchar \u003d strchr(CMD_ARGV[0], \u0027:\u0027);"},{"line_number":1222,"context_line":"\tstrncpy(vdc.server_name, CMD_ARGV[0], pchar - CMD_ARGV[0] + 1);"},{"line_number":1223,"context_line":"\tvdc.server_name[pchar - CMD_ARGV[0]] \u003d \u0027\\0\u0027;"},{"line_number":1224,"context_line":"\tint port \u003d atoi(pchar + 1);"},{"line_number":1225,"context_line":"\tif (port \u003c 0 || port \u003e UINT16_MAX) {"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"6846c7a6_8e04b439","line":1222,"updated":"2026-06-02 08:05:05.000000000","message":"Here it looks like the length of the server name should be checked to avoid buffer overrun of vdc.server_name.\n\nSomething like this:\n\n```\nconst unsigned int server_name_max_len \u003d sizeof(vdc.server_name) - 1;\nconst unsigned int server_name_len \u003d pchar - CMD_ARGV[0];\nif (server_name_len \u003e server_name_max_len ) {\n    LOG_ERROR(\"too long server name, exceeds %zu characters\", server_name_max_len);\n    return ERROR_COMMAND_ARGUMENT_INVALID;\n}\n\nstrncpy(vdc.server_name, CMD_ARGV[0], server_name_len + 1);\n```","commit_id":"dd17354a250626967fe422d056cf23d5a3c9c314"},{"author":{"_account_id":1002524,"name":"Aurore Poirier","email":"aurore.poirier@scisemi.com","username":"aurore-poirier"},"change_message_id":"1a311fdaded40a84ef02274bda1e8d3d2edd522c","unresolved":false,"context_lines":[{"line_number":1219,"context_line":"\t\treturn ERROR_COMMAND_SYNTAX_ERROR;"},{"line_number":1220,"context_line":""},{"line_number":1221,"context_line":"\tconst char *pchar \u003d strchr(CMD_ARGV[0], \u0027:\u0027);"},{"line_number":1222,"context_line":"\tstrncpy(vdc.server_name, CMD_ARGV[0], pchar - CMD_ARGV[0] + 1);"},{"line_number":1223,"context_line":"\tvdc.server_name[pchar - CMD_ARGV[0]] \u003d \u0027\\0\u0027;"},{"line_number":1224,"context_line":"\tint port \u003d atoi(pchar + 1);"},{"line_number":1225,"context_line":"\tif (port \u003c 0 || port \u003e UINT16_MAX) {"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"411bd55a_9647141b","line":1222,"in_reply_to":"6846c7a6_8e04b439","updated":"2026-06-02 09:07:57.000000000","message":"Done. Keeping the +1 in strncpy to be sure about allocation size but making sure the \u0027:\u0027 is replaced by \u0027\\0\u0027 as we don\u0027t want the \u0027:\u0027 in the server name and an null-terminated string","commit_id":"dd17354a250626967fe422d056cf23d5a3c9c314"},{"author":{"_account_id":1001667,"name":"Jan Matyas","email":"jan.matyas@codasip.com","username":"JanMatCodasip"},"change_message_id":"08c4c36ff4e64468d4a3bf412317d5f566d22393","unresolved":true,"context_lines":[{"line_number":1231,"context_line":"\t// We don\u0027t want to keep the \u0027:\u0027 in the server name"},{"line_number":1232,"context_line":"\tvdc.server_name[server_name_len] \u003d \u0027\\0\u0027;"},{"line_number":1233,"context_line":"\tint port \u003d atoi(pchar + 1);"},{"line_number":1234,"context_line":""},{"line_number":1235,"context_line":"\tif (port \u003c 0 || port \u003e UINT16_MAX) {"},{"line_number":1236,"context_line":"\t\tLOG_ERROR(\"invalid port number %d specified\", port);"},{"line_number":1237,"context_line":"\t\treturn ERROR_COMMAND_SYNTAX_ERROR;"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"3b5c1bfe_891affcb","line":1234,"updated":"2026-06-02 10:13:55.000000000","message":"Optional / nitpick: You can add few blank lines to split the code into logical pieces and improve readability:\n\n```\n\tif (CMD_ARGC !\u003d 1)\n\t\treturn ERROR_COMMAND_SYNTAX_ERROR;\n\n\tconst char *pchar \u003d strchr(CMD_ARGV[0], \u0027:\u0027);\n\tif (!pchar)\n\t\treturn ERROR_COMMAND_SYNTAX_ERROR;\n\t\n\tconst unsigned int server_name_max_len \u003d sizeof(vdc.server_name) - 1;\n\tconst unsigned int server_name_len \u003d pchar - CMD_ARGV[0];\n\tif (server_name_len \u003e server_name_max_len) {\n\t\tLOG_ERROR(\"too long server name, exceeds %u characters\", server_name_max_len);\n\t\treturn ERROR_COMMAND_ARGUMENT_INVALID;\n\t}\n\n\tstrncpy(vdc.server_name, CMD_ARGV[0], server_name_len + 1);\n\t// We don\u0027t want to keep the \u0027:\u0027 in the server name\n\tvdc.server_name[server_name_len] \u003d \u0027\\0\u0027;\n\n\tint port \u003d atoi(pchar + 1);\n```","commit_id":"b841ee8b8b43d9d9f29ab0f8eec39ba7d14c5b0b"},{"author":{"_account_id":1001667,"name":"Jan Matyas","email":"jan.matyas@codasip.com","username":"JanMatCodasip"},"change_message_id":"1ae8d44007c57c8ea36c4ec476706d7a6709bfe3","unresolved":false,"context_lines":[{"line_number":1231,"context_line":"\t// We don\u0027t want to keep the \u0027:\u0027 in the server name"},{"line_number":1232,"context_line":"\tvdc.server_name[server_name_len] \u003d \u0027\\0\u0027;"},{"line_number":1233,"context_line":"\tint port \u003d atoi(pchar + 1);"},{"line_number":1234,"context_line":""},{"line_number":1235,"context_line":"\tif (port \u003c 0 || port \u003e UINT16_MAX) {"},{"line_number":1236,"context_line":"\t\tLOG_ERROR(\"invalid port number %d specified\", port);"},{"line_number":1237,"context_line":"\t\treturn ERROR_COMMAND_SYNTAX_ERROR;"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"b45704d2_d262ab28","line":1234,"in_reply_to":"3b5c1bfe_891affcb","updated":"2026-06-02 12:07:08.000000000","message":"Done","commit_id":"b841ee8b8b43d9d9f29ab0f8eec39ba7d14c5b0b"},{"author":{"_account_id":1002524,"name":"Aurore Poirier","email":"aurore.poirier@scisemi.com","username":"aurore-poirier"},"change_message_id":"008360be30895b7cb944254607e1508142eef89f","unresolved":false,"context_lines":[{"line_number":1231,"context_line":"\t// We don\u0027t want to keep the \u0027:\u0027 in the server name"},{"line_number":1232,"context_line":"\tvdc.server_name[server_name_len] \u003d \u0027\\0\u0027;"},{"line_number":1233,"context_line":"\tint port \u003d atoi(pchar + 1);"},{"line_number":1234,"context_line":""},{"line_number":1235,"context_line":"\tif (port \u003c 0 || port \u003e UINT16_MAX) {"},{"line_number":1236,"context_line":"\t\tLOG_ERROR(\"invalid port number %d specified\", port);"},{"line_number":1237,"context_line":"\t\treturn ERROR_COMMAND_SYNTAX_ERROR;"}],"source_content_type":"text/x-csrc","patch_set":4,"id":"31865863_d83edb76","line":1234,"in_reply_to":"3b5c1bfe_891affcb","updated":"2026-06-02 12:07:56.000000000","message":"Done (patch set 6)","commit_id":"b841ee8b8b43d9d9f29ab0f8eec39ba7d14c5b0b"},{"author":{"_account_id":1000021,"name":"Antonio Borneo","email":"borneo.antonio@gmail.com","username":"borneoa"},"change_message_id":"da73016e60a34396f86e5e9ebb9243b10c6f5d83","unresolved":true,"context_lines":[{"line_number":1213,"context_line":"\treturn ERROR_OK;"},{"line_number":1214,"context_line":"}"},{"line_number":1215,"context_line":""},{"line_number":1216,"context_line":"COMMAND_HANDLER(vdebug_set_server)"},{"line_number":1217,"context_line":"{"},{"line_number":1218,"context_line":"\tif (CMD_ARGC !\u003d 1)"},{"line_number":1219,"context_line":"\t\treturn ERROR_COMMAND_SYNTAX_ERROR;"}],"source_content_type":"text/x-csrc","patch_set":6,"id":"e6fc35f9_23092f9a","line":1216,"updated":"2026-06-09 08:08:30.000000000","message":"This function will be dropped by https://review.openocd.org/c/openocd/+/9712\nI prefer merging that patch before this one.\nI will alert you once it\u0027s done, so you can rebase this patch","commit_id":"c9a1456aa5aa2092ee16d2133e9cf70521f8f6f3"}]}
