summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2020-12-15 22:32:22 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2020-12-15 22:32:22 +0000
commit7fcf4360299b4ef13d5ac60ce792ebce619a1c7f (patch)
tree7e14fbebc9496fb4a4d45a0254704eb2e47fc9ee
parent202ac7716537678803f0270fd3a8c6699ce73bd3 (diff)
parent3ee6879e91eb132e0b24e2adefd4d8eae2491a62 (diff)
downloadnative-android11-mainline-release.tar.gz
Change-Id: Icf7d0ecc5ae62e811dad233a87f9fc0be1692c82
-rw-r--r--libs/binder/Parcel.cpp10
-rw-r--r--services/surfaceflinger/SurfaceFlinger.cpp17
2 files changed, 17 insertions, 10 deletions
diff --git a/libs/binder/Parcel.cpp b/libs/binder/Parcel.cpp
index 9642a87f4e..b7ad660317 100644
--- a/libs/binder/Parcel.cpp
+++ b/libs/binder/Parcel.cpp
@@ -1870,7 +1870,10 @@ const char* Parcel::readString8Inplace(size_t* outLen) const
*outLen = size;
const char* str = (const char*)readInplace(size+1);
if (str != nullptr) {
- return str;
+ if (str[size] == '\0') {
+ return str;
+ }
+ android_errorWriteLog(0x534e4554, "172655291");
}
}
*outLen = 0;
@@ -1930,7 +1933,10 @@ const char16_t* Parcel::readString16Inplace(size_t* outLen) const
*outLen = size;
const char16_t* str = (const char16_t*)readInplace((size+1)*sizeof(char16_t));
if (str != nullptr) {
- return str;
+ if (str[size] == u'\0') {
+ return str;
+ }
+ android_errorWriteLog(0x534e4554, "172655291");
}
}
*outLen = 0;
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp
index 07690cbf32..4a60d5c6f2 100644
--- a/services/surfaceflinger/SurfaceFlinger.cpp
+++ b/services/surfaceflinger/SurfaceFlinger.cpp
@@ -600,13 +600,6 @@ void SurfaceFlinger::bootFinished()
if (mWindowManager != 0) {
mWindowManager->linkToDeath(static_cast<IBinder::DeathRecipient*>(this));
}
- sp<IBinder> input(defaultServiceManager()->getService(
- String16("inputflinger")));
- if (input == nullptr) {
- ALOGE("Failed to link to input service");
- } else {
- mInputFlinger = interface_cast<IInputFlinger>(input);
- }
if (mVrFlinger) {
mVrFlinger->OnBootFinished();
@@ -621,7 +614,15 @@ void SurfaceFlinger::bootFinished()
LOG_EVENT_LONG(LOGTAG_SF_STOP_BOOTANIM,
ns2ms(systemTime(SYSTEM_TIME_MONOTONIC)));
- static_cast<void>(schedule([this] {
+ sp<IBinder> input(defaultServiceManager()->getService(String16("inputflinger")));
+
+ static_cast<void>(schedule([=] {
+ if (input == nullptr) {
+ ALOGE("Failed to link to input service");
+ } else {
+ mInputFlinger = interface_cast<IInputFlinger>(input);
+ }
+
readPersistentProperties();
mPowerAdvisor.onBootFinished();
mBootStage = BootStage::FINISHED;