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

Commit 08d23cf0 authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "OBEX : Handle Negative index Exception"

parents bbaa19ca 5e04c8bb
Loading
Loading
Loading
Loading
+12 −6
Original line number Diff line number Diff line
@@ -80,6 +80,9 @@ public final class ObexHelper {
    // The minimum allowed max packet size is 255 according to the OBEX specification
    public static final int LOWER_LIMIT_MAX_PACKET_SIZE = 255;

    // The length of OBEX Byte Sequency Header Id according to the OBEX specification
    public static final int OBEX_BYTE_SEQ_HEADER_LEN = 0x03;

    /**
     * Temporary workaround to be able to push files to Windows 7.
     * TODO: Should be removed as soon as Microsoft updates their driver.
@@ -205,12 +208,15 @@ public final class ObexHelper {
                    case 0x40:
                        boolean trimTail = true;
                        index++;
                        length = 0xFF & headerArray[index];
                        length = length << 8;
                        index++;
                        length += 0xFF & headerArray[index];
                        length -= 3;
                        index++;
                        length = ((0xFF & headerArray[index]) << 8) +
                                 (0xFF & headerArray[index + 1]);
                        index += 2;
                        if (length <= OBEX_BYTE_SEQ_HEADER_LEN) {
                            Log.e(TAG, "Remote sent an OBEX packet with " +
                                  "incorrect header length = " + length);
                            break;
                        }
                        length -= OBEX_BYTE_SEQ_HEADER_LEN;
                        value = new byte[length];
                        System.arraycopy(headerArray, index, value, 0, length);
                        if (length == 0 || (length > 0 && (value[length - 1] != 0))) {