Fix vulnerability where large GPS XTRA data can be injected.

-Can potentially crash system with OOM.
Bug: 29555864

Change-Id: I7157f48dddf148a9bcab029cf12e26a58d8054f4
This commit is contained in:
David Christie
2016-07-25 17:13:23 -07:00
parent 77b5526229
commit dde12c6923

View File

@@ -44,6 +44,7 @@ public class GpsXtraDownloader {
private static final String TAG = "GpsXtraDownloader";
static final boolean DEBUG = false;
private static final long MAXIMUM_CONTENT_LENGTH_BYTES = 1000000; // 1MB.
private Context mContext;
private String[] mXtraServers;
@@ -138,8 +139,9 @@ public class GpsXtraDownloader {
byte[] body = null;
if (entity != null) {
try {
if (entity.getContentLength() > 0) {
body = new byte[(int) entity.getContentLength()];
long contentLength = entity.getContentLength();
if (contentLength > 0 && contentLength <= MAXIMUM_CONTENT_LENGTH_BYTES) {
body = new byte[(int) contentLength];
DataInputStream dis = new DataInputStream(entity.getContent());
try {
dis.readFully(body);