)]}'
{"drivers/usb/gadget/android.c":[{"author":{"_account_id":15402,"name":"Corinna Vinschen","email":"xda@vinschen.de","username":"cvxda","avatars":[{"url":"https://www.gravatar.com/avatar/7949ca1d70b58f4108733fc739ef8f93.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/7949ca1d70b58f4108733fc739ef8f93.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/7949ca1d70b58f4108733fc739ef8f93.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/7949ca1d70b58f4108733fc739ef8f93.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"a69a1950beeadc48d357e26c82b9802490ef6fe4","unresolved":false,"context_lines":[{"line_number":3398,"context_line":"\t\t}"},{"line_number":3399,"context_line":"\t}"},{"line_number":3400,"context_line":""},{"line_number":3401,"context_line":"\t/* HID driver always enabled, it\u0027s the whole point of this kernel patch */"},{"line_number":3402,"context_line":"\tandroid_enable_function(dev, conf, \"hid\");"},{"line_number":3403,"context_line":"\t/* Free uneeded configurations if exists */"},{"line_number":3404,"context_line":"\twhile (curr_conf-\u003enext !\u003d \u0026dev-\u003econfigs) {"},{"line_number":3405,"context_line":"\t\tconf \u003d list_entry(curr_conf-\u003enext,"}],"source_content_type":"text/x-csrc","patch_set":8,"id":"da87b5cf_6a40e656","line":3402,"range":{"start_line":3401,"start_character":0,"end_line":3402,"end_character":43},"updated":"2017-06-04 10:07:13.000000000","message":"Really?  Without the user\u0027s consent?  So, in conjunction with the selinux policy patch, any untrusted app can perform PC input, potentially without the user knowing?  Or am I missing something?","commit_id":"d661b0ce06b3051352ae75780572e7b3376b7ea1"}],"drivers/usb/gadget/f_hid.c":[{"author":{"_account_id":15402,"name":"Corinna Vinschen","email":"xda@vinschen.de","username":"cvxda","avatars":[{"url":"https://www.gravatar.com/avatar/7949ca1d70b58f4108733fc739ef8f93.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d32","height":32},{"url":"https://www.gravatar.com/avatar/7949ca1d70b58f4108733fc739ef8f93.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d56","height":56},{"url":"https://www.gravatar.com/avatar/7949ca1d70b58f4108733fc739ef8f93.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d100","height":100},{"url":"https://www.gravatar.com/avatar/7949ca1d70b58f4108733fc739ef8f93.jpg?d\u003didenticon\u0026r\u003dpg\u0026s\u003d120","height":120}]},"change_message_id":"a69a1950beeadc48d357e26c82b9802490ef6fe4","unresolved":false,"context_lines":[{"line_number":63,"context_line":"};"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"/* Hacky device list to fix f_hidg_write being called after device destroyed."},{"line_number":66,"context_line":"   It covers only most common race conditions, there will be rare crashes anyway. */"},{"line_number":67,"context_line":"enum { HACKY_DEVICE_LIST_SIZE \u003d 4 };"},{"line_number":68,"context_line":"static struct f_hidg *hacky_device_list[HACKY_DEVICE_LIST_SIZE];"},{"line_number":69,"context_line":"static void hacky_device_list_add(struct f_hidg *hidg)"}],"source_content_type":"text/x-csrc","patch_set":8,"id":"da87b5cf_0a259ac1","line":66,"range":{"start_line":66,"start_character":0,"end_line":66,"end_character":84},"updated":"2017-06-04 10:07:13.000000000","message":"This sounds like \"hacky_device_list\" is the wrong solution for the problem","commit_id":"d661b0ce06b3051352ae75780572e7b3376b7ea1"}]}
