summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2018-02-16 22:52:29 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2018-02-16 22:52:29 +0000
commitb45f7f3fc558b603a5956f2d0da2e92d12383966 (patch)
treee07d887b1562b9bc5c6f76beb3d45019ca3e48f7
parent31cc77696ea945801a274918cf6c4db87f27d7f9 (diff)
parent2a81c375a3bf7fd8d9c6bda3262244a426a7029b (diff)
downloadbase-oreo-m5-release.tar.gz
Merge cherrypicks of [3628718, 3628929, 3628848, 3628813, 3628719, 3628980, 3628930, 3628931, 3628903, 3628759, 3629000, 3629001, 3629002, 3629003, 3629040, 3629041, 3629042, 3629043, 3629044, 3629045, 3628974, 3629022, 3628981, 3628849, 3628932, 3628933, 3628934, 3628935, 3628936, 3628937, 3628938, 3628939, 3629060, 3628982, 3628983, 3628984] into oc-m5-releaseandroid-8.1.0_r22oreo-m5-release
Change-Id: I920d983b2baa510f19613e805f7a3fbce373c541
-rw-r--r--core/java/android/bluetooth/le/PeriodicAdvertisingReport.java2
-rw-r--r--core/java/android/hardware/camera2/params/OutputConfiguration.java3
-rw-r--r--core/java/android/net/Uri.java8
-rw-r--r--core/java/com/android/internal/widget/VerifyCredentialResponse.java2
-rw-r--r--core/tests/coretests/src/android/net/UriTest.java6
-rw-r--r--libs/androidfw/ResourceTypes.cpp8
-rw-r--r--wifi/java/android/net/wifi/RttManager.java4
7 files changed, 29 insertions, 4 deletions
diff --git a/core/java/android/bluetooth/le/PeriodicAdvertisingReport.java b/core/java/android/bluetooth/le/PeriodicAdvertisingReport.java
index 51b93cbd64dc..6fc8d553946e 100644
--- a/core/java/android/bluetooth/le/PeriodicAdvertisingReport.java
+++ b/core/java/android/bluetooth/le/PeriodicAdvertisingReport.java
@@ -71,7 +71,7 @@ public final class PeriodicAdvertisingReport implements Parcelable {
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeInt(syncHandle);
- dest.writeLong(txPower);
+ dest.writeInt(txPower);
dest.writeInt(rssi);
dest.writeInt(dataStatus);
if (data != null) {
diff --git a/core/java/android/hardware/camera2/params/OutputConfiguration.java b/core/java/android/hardware/camera2/params/OutputConfiguration.java
index 2b317d679d1c..05c4dc378890 100644
--- a/core/java/android/hardware/camera2/params/OutputConfiguration.java
+++ b/core/java/android/hardware/camera2/params/OutputConfiguration.java
@@ -409,6 +409,7 @@ public final class OutputConfiguration implements Parcelable {
this.mConfiguredSize = other.mConfiguredSize;
this.mConfiguredGenerationId = other.mConfiguredGenerationId;
this.mIsDeferredConfig = other.mIsDeferredConfig;
+ this.mIsShared = other.mIsShared;
}
/**
@@ -421,6 +422,7 @@ public final class OutputConfiguration implements Parcelable {
int width = source.readInt();
int height = source.readInt();
boolean isDeferred = source.readInt() == 1;
+ boolean isShared = source.readInt() == 1;
ArrayList<Surface> surfaces = new ArrayList<Surface>();
source.readTypedList(surfaces, Surface.CREATOR);
@@ -431,6 +433,7 @@ public final class OutputConfiguration implements Parcelable {
mSurfaces = surfaces;
mConfiguredSize = new Size(width, height);
mIsDeferredConfig = isDeferred;
+ mIsShared = isShared;
mSurfaces = surfaces;
if (mSurfaces.size() > 0) {
mSurfaceType = SURFACE_TYPE_UNKNOWN;
diff --git a/core/java/android/net/Uri.java b/core/java/android/net/Uri.java
index 9edcc0e9b8d4..5ca3a4106a2d 100644
--- a/core/java/android/net/Uri.java
+++ b/core/java/android/net/Uri.java
@@ -720,6 +720,10 @@ public abstract class Uri implements Parcelable, Comparable<Uri> {
LOOP: while (end < length) {
switch (uriString.charAt(end)) {
case '/': // Start of path
+ case '\\':// Start of path
+ // Per http://url.spec.whatwg.org/#host-state, the \ character
+ // is treated as if it were a / character when encountered in a
+ // host
case '?': // Start of query
case '#': // Start of fragment
break LOOP;
@@ -758,6 +762,10 @@ public abstract class Uri implements Parcelable, Comparable<Uri> {
case '#': // Start of fragment
return ""; // Empty path.
case '/': // Start of path!
+ case '\\':// Start of path!
+ // Per http://url.spec.whatwg.org/#host-state, the \ character
+ // is treated as if it were a / character when encountered in a
+ // host
break LOOP;
}
pathStart++;
diff --git a/core/java/com/android/internal/widget/VerifyCredentialResponse.java b/core/java/com/android/internal/widget/VerifyCredentialResponse.java
index ad6020c0846c..7d1c70647092 100644
--- a/core/java/com/android/internal/widget/VerifyCredentialResponse.java
+++ b/core/java/com/android/internal/widget/VerifyCredentialResponse.java
@@ -98,6 +98,8 @@ public final class VerifyCredentialResponse implements Parcelable {
if (mPayload != null) {
dest.writeInt(mPayload.length);
dest.writeByteArray(mPayload);
+ } else {
+ dest.writeInt(0);
}
}
}
diff --git a/core/tests/coretests/src/android/net/UriTest.java b/core/tests/coretests/src/android/net/UriTest.java
index 27b7f9e185bb..ea0347d67ad7 100644
--- a/core/tests/coretests/src/android/net/UriTest.java
+++ b/core/tests/coretests/src/android/net/UriTest.java
@@ -192,6 +192,12 @@ public class UriTest extends TestCase {
assertEquals("a:a@example.com:a@example2.com", uri.getAuthority());
assertEquals("example2.com", uri.getHost());
assertEquals(-1, uri.getPort());
+ assertEquals("/path", uri.getPath());
+
+ uri = Uri.parse("http://a.foo.com\\.example.com/path");
+ assertEquals("a.foo.com", uri.getHost());
+ assertEquals(-1, uri.getPort());
+ assertEquals("\\.example.com/path", uri.getPath());
}
@SmallTest
diff --git a/libs/androidfw/ResourceTypes.cpp b/libs/androidfw/ResourceTypes.cpp
index 0782269d7de1..733ffb180b3b 100644
--- a/libs/androidfw/ResourceTypes.cpp
+++ b/libs/androidfw/ResourceTypes.cpp
@@ -813,7 +813,13 @@ const char* ResStringPool::string8At(size_t idx, size_t* outLen) const
*outLen = encLen;
if ((uint32_t)(str+encLen-strings) < mStringPoolSize) {
- return (const char*)str;
+ // Reject malformed (non null-terminated) strings
+ if (str[encLen] != 0x00) {
+ ALOGW("Bad string block: string #%d is not null-terminated",
+ (int)idx);
+ return NULL;
+ }
+ return (const char*)str;
} else {
ALOGW("Bad string block: string #%d extends to %d, past end at %d\n",
(int)idx, (int)(str+encLen-strings), (int)mStringPoolSize);
diff --git a/wifi/java/android/net/wifi/RttManager.java b/wifi/java/android/net/wifi/RttManager.java
index dc5ba0cc83b5..12a8ddf9fcdc 100644
--- a/wifi/java/android/net/wifi/RttManager.java
+++ b/wifi/java/android/net/wifi/RttManager.java
@@ -847,8 +847,8 @@ public class RttManager {
}
dest.writeByte(result.LCR.id);
if (result.LCR.id != (byte) 0xFF) {
- dest.writeInt((byte) result.LCR.data.length);
- dest.writeByte(result.LCR.id);
+ dest.writeByte((byte) result.LCR.data.length);
+ dest.writeByteArray(result.LCR.data);
}
dest.writeByte(result.secure ? (byte) 1 : 0);
}