Make CameraStatus::cameraId to use String16.
Java strings are passed as UTF16 and attempt to pass cameraId
with alpha symbols via CameraStatus leads either to corrupted
or null strings.
Test: build/flash/boot
Test: verified together with ag/1841664 that alpha camera ids
are passed correctly.
Change-Id: Ic6045322137c156aa03bbcdccfe81f8f0ecb0618
diff --git a/camera/CameraBase.cpp b/camera/CameraBase.cpp
index 60effe2..c53e6c3 100644
--- a/camera/CameraBase.cpp
+++ b/camera/CameraBase.cpp
@@ -56,17 +56,19 @@
}
status_t CameraStatus::writeToParcel(android::Parcel* parcel) const {
- status_t res;
- res = parcel->writeString8(cameraId);
+ auto res = parcel->writeString16(String16(cameraId));
if (res != OK) return res;
+
res = parcel->writeInt32(status);
return res;
}
status_t CameraStatus::readFromParcel(const android::Parcel* parcel) {
- status_t res;
- res = parcel->readString8(&cameraId);
+ String16 tempCameraId;
+ auto res = parcel->readString16(&tempCameraId);
if (res != OK) return res;
+ cameraId = String8(tempCameraId);
+
res = parcel->readInt32(&status);
return res;
}