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

Commit ac1873b2 authored by Christine Hallstrom's avatar Christine Hallstrom Committed by Android (Google) Code Review
Browse files

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

parents 54949834 fc59c344
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);