diff options
Diffstat (limited to 'obex')
-rw-r--r-- | obex/javax/obex/ObexHelper.java | 5 | ||||
-rw-r--r-- | obex/javax/obex/ServerSession.java | 2 |
2 files changed, 6 insertions, 1 deletions
diff --git a/obex/javax/obex/ObexHelper.java b/obex/javax/obex/ObexHelper.java index f569595..1b66662 100644 --- a/obex/javax/obex/ObexHelper.java +++ b/obex/javax/obex/ObexHelper.java @@ -897,6 +897,11 @@ public final class ObexHelper { if (lower < 0) { lower += 256; } + // If upper and lower both equal 0, it should be the end of string. + // Ignore left bytes from array to avoid potential issues + if (upper == 0 && lower == 0) { + return new String(c, 0, i); + } c[i] = (char)((upper << 8) | lower); } diff --git a/obex/javax/obex/ServerSession.java b/obex/javax/obex/ServerSession.java index 423d5a7..675272d 100644 --- a/obex/javax/obex/ServerSession.java +++ b/obex/javax/obex/ServerSession.java @@ -168,7 +168,7 @@ public final class ServerSession extends ObexSession implements Runnable { } else { response = validateResponseCode(mListener.onPut(op)); } - if (response != ResponseCodes.OBEX_HTTP_OK) { + if (response != ResponseCodes.OBEX_HTTP_OK && !op.isAborted) { op.sendReply(response); } else if (!op.isAborted) { // wait for the final bit |