func: void CVE_2015_4001_PATCHED_oz_hcd_get_desc_cnf(void *hport, u8 req_id, u8 status, const u8 u8 length, u16 offset, u16 total_size) struct oz_port * port = hport ; struct urb * urb ; urb = oz_find_urb_by_id ( port , 0 , req_id ); if ( ! urb )  if ( status == 0 )  unsigned int copy_len ; unsigned int required_size = urb -> transfer_buffer_length ; if ( required_size > total_size )  required_size = total_size; copy_len = required_size - offset; if ( length <= copy_len )  copy_len = length; memcpy ( urb -> transfer_buffer + offset , desc , copy_len ); struct usb_ctrlrequest * setup = ( struct usb_ctrlrequest * ) urb -> setup_packet ; unsigned wvalue = le16_to_cpu ( setup -> wValue ) ; if ( oz_enqueue_ep_urb ( port , 0 , 0 , urb , req_id ) )  if ( oz_usb_get_desc_req ( port -> hpd , req_id , setup -> bRequestType , ( u8 ) ( wvalue >> 8 ) , ( u8 ) wvalue , setup -> wIndex , offset , required_size - offset ) )  oz_dequeue_ep_urb ( port , 0 , 0 , urb ); 