リビジョン | 7fffe76d48280a9d8808133ffb8bcba13e6bd0a9 (tree) |
---|---|
日時 | 2020-05-06 11:34:24 |
作者 | Chih-Wei Huang <cwhuang@linu...> |
コミッター | Chih-Wei Huang |
Merge tag 'android-9.0.0_r56' into pie-x86
Android 9.0.0 release 56
@@ -264,8 +264,12 @@ status_t BnCrypto::onTransact( | ||
264 | 264 | { |
265 | 265 | CHECK_INTERFACE(ICrypto, data, reply); |
266 | 266 | |
267 | - uint8_t uuid[16]; | |
268 | - data.read(uuid, sizeof(uuid)); | |
267 | + uint8_t uuid[16] = {0}; | |
268 | + if (data.read(uuid, sizeof(uuid)) != NO_ERROR) { | |
269 | + android_errorWriteLog(0x534e4554, "144767096"); | |
270 | + reply->writeInt32(BAD_VALUE); | |
271 | + return OK; | |
272 | + } | |
269 | 273 | |
270 | 274 | size_t opaqueSize = data.readInt32(); |
271 | 275 | void *opaqueData = NULL; |
@@ -280,7 +284,11 @@ status_t BnCrypto::onTransact( | ||
280 | 284 | return NO_MEMORY; |
281 | 285 | } |
282 | 286 | |
283 | - data.read(opaqueData, opaqueSize); | |
287 | + if (data.read(opaqueData, opaqueSize) != NO_ERROR) { | |
288 | + android_errorWriteLog(0x534e4554, "144767096"); | |
289 | + reply->writeInt32(BAD_VALUE); | |
290 | + return OK; | |
291 | + } | |
284 | 292 | reply->writeInt32(createPlugin(uuid, opaqueData, opaqueSize)); |
285 | 293 | |
286 | 294 | free(opaqueData); |
@@ -106,6 +106,8 @@ Return<void> CryptoPlugin::decrypt( | ||
106 | 106 | return Void(); |
107 | 107 | } |
108 | 108 | |
109 | + base = static_cast<uint8_t *>(static_cast<void *>(destBase->getPointer())); | |
110 | + | |
109 | 111 | if (destBuffer.offset + destBuffer.size > destBase->getSize()) { |
110 | 112 | _hidl_cb(Status::ERROR_DRM_CANNOT_HANDLE, 0, "invalid buffer size"); |
111 | 113 | return Void(); |
@@ -531,6 +531,11 @@ Return<Status> DrmPlugin::releaseSecureStops(const SecureStopRelease& ssRelease) | ||
531 | 531 | // count - number of secure stops |
532 | 532 | // list of fixed length secure stops |
533 | 533 | size_t countBufferSize = sizeof(uint32_t); |
534 | + if (input.size() < countBufferSize) { | |
535 | + // SafetyNet logging | |
536 | + android_errorWriteLog(0x534e4554, "144766455"); | |
537 | + return Status::BAD_VALUE; | |
538 | + } | |
534 | 539 | uint32_t count = 0; |
535 | 540 | sscanf(reinterpret_cast<char*>(input.data()), "%04" PRIu32, &count); |
536 | 541 |
@@ -2981,6 +2981,9 @@ void Camera3Device::sendCaptureResult(CameraMetadata &pendingMetadata, | ||
2981 | 2981 | frameNumber); |
2982 | 2982 | return; |
2983 | 2983 | } |
2984 | + | |
2985 | + nsecs_t sensorTimestamp = timestamp.data.i64[0]; | |
2986 | + | |
2984 | 2987 | for (auto& physicalMetadata : captureResult.mPhysicalMetadatas) { |
2985 | 2988 | camera_metadata_entry timestamp = |
2986 | 2989 | physicalMetadata.mPhysicalCameraMetadata.find(ANDROID_SENSOR_TIMESTAMP); |
@@ -3000,7 +3003,7 @@ void Camera3Device::sendCaptureResult(CameraMetadata &pendingMetadata, | ||
3000 | 3003 | } |
3001 | 3004 | |
3002 | 3005 | mTagMonitor.monitorMetadata(TagMonitor::RESULT, |
3003 | - frameNumber, timestamp.data.i64[0], captureResult.mMetadata); | |
3006 | + frameNumber, sensorTimestamp, captureResult.mMetadata); | |
3004 | 3007 | |
3005 | 3008 | insertResultLocked(&captureResult, frameNumber); |
3006 | 3009 | } |