OBEX : Handle Negative index Exception
Use case: 1. Send file to remote device. 2. Wait for accepting the file transfer on remote device. Use Specific remote device(that sends some optional headers). Failure: No file acceptance popup seen on remote device. Root cause: Crash in com.android.bluetooth. FATAL EXCEPTION: BtOpp ClientThread Process: com.android.bluetooth, PID: 22527 java.lang.NegativeArraySizeException: -3 at javax.obex.ObexHelper.updateHeaderSet(ObexHelper.java:216) at javax.obex.ClientSession.sendRequest(ClientSession.java:568) at javax.obex.ClientSession.connect(ClientSession.java:148) at com.android.bluetooth.opp.BluetoothOppObexClientSession$ClientThread. connect(BluetoothOppObexClientSession.java:317) at com.android.bluetooth.opp.BluetoothOppObexClientSession$ClientThread. run(BluetoothOppObexClientSession.java:231) am_crash( 1402): [22527,0,com.android.bluetooth,818462277,java.lang. NegativeArraySizeException,-3,ObexHelper.java,216] Fix: Add length check before allocate memory and break loop if length is less than expected header length as per OBEX Specification to prevent crash. Test: Verified that OPP Tx and Rx works successfully multiple times. Bug: 35588578 Change-Id: I805e6b1d51f69645d5132c3c18db2e752d04b096
Loading
Please register or sign in to comment