readAt can return negative values (error codes).

This fixes the regression introduced in
59cea2616269f34b1f3d046995efd8da42cd5549 due to which MediaPlayer
treated all error codes returned by MediaHTTPConnection as
ERROR_OUT_OF_RANGE.

The regression was caused by accidentally converting negative values
(which represent error codes) returned by MediaHTTPConnection to very
large positive ones (which represent length of data received).

Bug: 21922241
Change-Id: I1b4592b5fec724aac1ba6c1ff8fdabcba56bcd2d
diff --git a/media/libmedia/IMediaHTTPConnection.cpp b/media/libmedia/IMediaHTTPConnection.cpp
index 7e89d7f..0dda0be9 100644
--- a/media/libmedia/IMediaHTTPConnection.cpp
+++ b/media/libmedia/IMediaHTTPConnection.cpp
@@ -107,7 +107,14 @@
             return UNKNOWN_ERROR;
         }
 
-        size_t len = reply.readInt32();
+        int32_t lenOrErrorCode = reply.readInt32();
+
+        // Negative values are error codes
+        if (lenOrErrorCode < 0) {
+            return lenOrErrorCode;
+        }
+
+        size_t len = lenOrErrorCode;
 
         if (len > size) {
             ALOGE("requested %zu, got %zu", size, len);