)]}'
{"ch347_spi.c":[{"author":{"_account_id":1000010,"name":"Nicholas Chin","email":"nic.c3.14@gmail.com","username":"nic3-14159","avatars":[{"url":"https://www.gravatar.com/avatar/f13f0d20eaa2ed381f24a2d16d3129e1.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/f13f0d20eaa2ed381f24a2d16d3129e1.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/f13f0d20eaa2ed381f24a2d16d3129e1.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/f13f0d20eaa2ed381f24a2d16d3129e1.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"1f6cdcce49f9ce16b96b9f67fd4f154b1d08c55b","unresolved":true,"context_lines":[{"line_number":311,"context_line":"#endif"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"\tconst struct dev_entry *dev_entry;"},{"line_number":314,"context_line":"\tfor (dev_entry \u003d devs_ch347_spi; dev_entry !\u003d NULL; ++dev_entry) {"},{"line_number":315,"context_line":"\t\tch347_data-\u003ehandle \u003d libusb_open_device_with_vid_pid("},{"line_number":316,"context_line":"\t\t\t\t\tNULL, dev_entry-\u003evendor_id, dev_entry-\u003edevice_id);"},{"line_number":317,"context_line":"\t\tif (ch347_data-\u003ehandle)"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"88e1211e_934e84c3","line":314,"range":{"start_line":314,"start_character":34,"end_line":314,"end_character":51},"updated":"2024-07-27 23:35:54.000000000","message":"This doesn\u0027t seem to terminate the loop on the final entry in `devs_ch347_spi` and leads to a segfault if no device is found. This seems to be because the final entry is not `NULL`, rather it is an instance of a `dev_entry` struct with all fields set to zero.","commit_id":"ca2ac1c85f980fc83a2cfde10cbe2d2707672138"},{"author":{"_account_id":1000000,"name":"Nico Huber","email":"nico.h@gmx.de","username":"icon","avatars":[{"url":"https://www.gravatar.com/avatar/60d420b5d650d48b86d6921a9f683b64.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/60d420b5d650d48b86d6921a9f683b64.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/60d420b5d650d48b86d6921a9f683b64.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/60d420b5d650d48b86d6921a9f683b64.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"2da1ad537de40394c21cc84c487b4c1def3c4532","unresolved":true,"context_lines":[{"line_number":311,"context_line":"#endif"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"\tconst struct dev_entry *dev_entry;"},{"line_number":314,"context_line":"\tfor (dev_entry \u003d devs_ch347_spi; dev_entry !\u003d NULL; ++dev_entry) {"},{"line_number":315,"context_line":"\t\tch347_data-\u003ehandle \u003d libusb_open_device_with_vid_pid("},{"line_number":316,"context_line":"\t\t\t\t\tNULL, dev_entry-\u003evendor_id, dev_entry-\u003edevice_id);"},{"line_number":317,"context_line":"\t\tif (ch347_data-\u003ehandle)"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"eb558602_f930ce11","line":314,"range":{"start_line":314,"start_character":34,"end_line":314,"end_character":51},"in_reply_to":"60d08ec0_ddd5fa0d","updated":"2024-08-02 14:30:17.000000000","message":"Do you want to have another look? :)","commit_id":"ca2ac1c85f980fc83a2cfde10cbe2d2707672138"},{"author":{"_account_id":1000000,"name":"Nico Huber","email":"nico.h@gmx.de","username":"icon","avatars":[{"url":"https://www.gravatar.com/avatar/60d420b5d650d48b86d6921a9f683b64.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/60d420b5d650d48b86d6921a9f683b64.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/60d420b5d650d48b86d6921a9f683b64.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/60d420b5d650d48b86d6921a9f683b64.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"671890cb6ca70340cb1f5c143cb3099507358b4d","unresolved":true,"context_lines":[{"line_number":311,"context_line":"#endif"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"\tconst struct dev_entry *dev_entry;"},{"line_number":314,"context_line":"\tfor (dev_entry \u003d devs_ch347_spi; dev_entry !\u003d NULL; ++dev_entry) {"},{"line_number":315,"context_line":"\t\tch347_data-\u003ehandle \u003d libusb_open_device_with_vid_pid("},{"line_number":316,"context_line":"\t\t\t\t\tNULL, dev_entry-\u003evendor_id, dev_entry-\u003edevice_id);"},{"line_number":317,"context_line":"\t\tif (ch347_data-\u003ehandle)"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"60d08ec0_ddd5fa0d","line":314,"range":{"start_line":314,"start_character":34,"end_line":314,"end_character":51},"in_reply_to":"88e1211e_934e84c3","updated":"2024-07-28 10:06:04.000000000","message":"Ouch. Thanks! Fixed.\n\n(I hope I\u0027m awake now.)","commit_id":"ca2ac1c85f980fc83a2cfde10cbe2d2707672138"},{"author":{"_account_id":1000010,"name":"Nicholas Chin","email":"nic.c3.14@gmail.com","username":"nic3-14159","avatars":[{"url":"https://www.gravatar.com/avatar/f13f0d20eaa2ed381f24a2d16d3129e1.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/f13f0d20eaa2ed381f24a2d16d3129e1.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/f13f0d20eaa2ed381f24a2d16d3129e1.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/f13f0d20eaa2ed381f24a2d16d3129e1.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"dfd11aa881a26243134d858a4387b17dce6cc126","unresolved":false,"context_lines":[{"line_number":311,"context_line":"#endif"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"\tconst struct dev_entry *dev_entry;"},{"line_number":314,"context_line":"\tfor (dev_entry \u003d devs_ch347_spi; dev_entry !\u003d NULL; ++dev_entry) {"},{"line_number":315,"context_line":"\t\tch347_data-\u003ehandle \u003d libusb_open_device_with_vid_pid("},{"line_number":316,"context_line":"\t\t\t\t\tNULL, dev_entry-\u003evendor_id, dev_entry-\u003edevice_id);"},{"line_number":317,"context_line":"\t\tif (ch347_data-\u003ehandle)"}],"source_content_type":"text/x-csrc","patch_set":1,"id":"7b965926_38c18b20","line":314,"range":{"start_line":314,"start_character":34,"end_line":314,"end_character":51},"in_reply_to":"eb558602_f930ce11","updated":"2024-08-03 00:18:27.000000000","message":"Looks fine to me. It no longer segfaults.","commit_id":"ca2ac1c85f980fc83a2cfde10cbe2d2707672138"}]}
