diff --git a/drm/libmediadrm/CryptoHalAidl.cpp b/drm/libmediadrm/CryptoHalAidl.cpp
index a688728..03782ef 100644
--- a/drm/libmediadrm/CryptoHalAidl.cpp
+++ b/drm/libmediadrm/CryptoHalAidl.cpp
@@ -109,7 +109,12 @@
     // skip negative convert check as count of enum elements are 2
     aidldb.type = static_cast<BufferType>((int32_t)buffer.type);
     aidldb.nonsecureMemory = hidlSharedBufferToAidlSharedBuffer(buffer.nonsecureMemory);
-    aidldb.secureMemory = ::android::makeToAidl(buffer.secureMemory.getNativeHandle());
+    auto handle = buffer.secureMemory.getNativeHandle();
+    if (handle) {
+        aidldb.secureMemory = ::android::makeToAidl(handle);
+    } else {
+        aidldb.secureMemory = {.fds = {}, .ints = {}};
+    }
     return aidldb;
 }
 
@@ -130,6 +135,13 @@
     return String8(string.c_str());
 }
 
+static std::vector<uint8_t> toStdVec(const uint8_t* ptr, size_t n) {
+    if (!ptr) {
+        return std::vector<uint8_t>();
+    }
+    return std::vector<uint8_t>(ptr, ptr + n);
+}
+
 // -------Hidl interface related end--------------
 
 CryptoHalAidl::CryptoHalAidl()
@@ -335,8 +347,8 @@
     status_t err = UNKNOWN_ERROR;
     mLock.unlock();
 
-    std::vector<uint8_t> keyIdAidl = std::vector<uint8_t>(keyId, keyId + 16);
-    std::vector<uint8_t> ivAidl = std::vector<uint8_t>(iv, iv + 16);
+    std::vector<uint8_t> keyIdAidl(toStdVec(keyId, 16));
+    std::vector<uint8_t> ivAidl(toStdVec(iv, 16));
     DecryptResult result;
     err = mPlugin->decrypt(secure, keyIdAidl, ivAidl, aMode, aPattern, stdSubSamples,
                            hidlSharedBufferToAidlSharedBuffer(hSource), offset,
