OSDN Git Service

Fix use of uninitialized value in libmediadrm
authorJeff Tinker <jtinker@google.com>
Fri, 12 Jan 2018 01:46:16 +0000 (17:46 -0800)
committerRyan Longair <rlongair@google.com>
Thu, 18 Jan 2018 18:16:48 +0000 (10:16 -0800)
bug:70526702
test:gts media tests

Change-Id: I29a67dad01ca8c8f649ba12cf08cc86b7eb56523
(cherry picked from commit 2442047f5c6d368f69fa81917f5aabc9b3c342a0)

drm/libmediadrm/CryptoHal.cpp
drm/libmediadrm/ICrypto.cpp

index d613a5b..1fdc6e1 100644 (file)
@@ -331,10 +331,13 @@ ssize_t CryptoHal::decrypt(const uint8_t keyId[16], const uint8_t iv[16],
             return status;
         }
         secure = false;
-    } else {
+    } else if (destination.mType == kDestinationTypeNativeHandle) {
         hDestination.type = BufferType::NATIVE_HANDLE;
         hDestination.secureMemory = hidl_handle(destination.mHandle);
         secure = true;
+    } else {
+        android_errorWriteLog(0x534e4554, "70526702");
+        return UNKNOWN_ERROR;
     }
 
     ::SharedBuffer hSource;
index 37dc83b..1d70a4e 100644 (file)
@@ -369,6 +369,10 @@ status_t BnCrypto::onTransact(
                     android_errorWriteLog(0x534e4554, "71389378");
                     return OK;
                 }
+            } else {
+                reply->writeInt32(BAD_VALUE);
+                android_errorWriteLog(0x534e4554, "70526702");
+                return OK;
             }
 
             AString errorDetailMsg;