Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f7dcb74e authored by Christine Hallstrom's avatar Christine Hallstrom Committed by android-build-merger
Browse files

Merge \"Fix early termination of while loop in BluetoothSocket#write\" into nyc-mr1-dev

am: 4ba50674

Change-Id: I4aede7ac37289fcf23642624db7f15da50163ce3
parents ef150a66 4ba50674
Loading
Loading
Loading
Loading
+9 −12
Original line number Diff line number Diff line
@@ -532,22 +532,19 @@ public final class BluetoothSocket implements Closeable {
                if(length <= mMaxTxPacketSize) {
                    mSocketOS.write(b, offset, length);
                } else {
                    int tmpOffset = offset;
                    int tmpLength = mMaxTxPacketSize;
                    int endIndex = offset + length;
                    boolean done = false;
                    if(DBG) Log.w(TAG, "WARNING: Write buffer larger than L2CAP packet size!\n"
                            + "Packet will be divided into SDU packets of size "
                            + mMaxTxPacketSize);
                    do{
                    int tmpOffset = offset;
                    int bytesToWrite = length;
                    while (bytesToWrite > 0) {
                        int tmpLength = (bytesToWrite > mMaxTxPacketSize)
                                ? mMaxTxPacketSize
                                : bytesToWrite;
                        mSocketOS.write(b, tmpOffset, tmpLength);
                        tmpOffset += mMaxTxPacketSize;
                        if((tmpOffset + mMaxTxPacketSize) > endIndex) {
                            tmpLength = endIndex - tmpOffset;
                            done = true;
                        tmpOffset += tmpLength;
                        bytesToWrite -= tmpLength;
                    }
                    } while(!done);

                }
            } else {
                mSocketOS.write(b, offset, length);