diff options
author | Jose Luis Marti <joseluis.marti@gmail.com> | 2023-01-02 00:06:25 +0100 |
---|---|---|
committer | Jose Luis Marti <joseluis.marti@gmail.com> | 2023-01-02 00:06:25 +0100 |
commit | 98a9ac74694e5443c73f716a2f2868f6b8cb8b0f (patch) | |
tree | bd4ac3f122b0a474c2d79b0cd1b1cd89adc2eb38 | |
parent | 2968130023ea6ee4327119dc969758840c4a5941 (diff) | |
download | xbmc-98a9ac74694e5443c73f716a2f2868f6b8cb8b0f.tar.xz |
[backport][Android] MediaDrm: catch restoreKeys exceptions
-rw-r--r-- | xbmc/platform/android/media/drm/MediaDrmCryptoSession.cpp | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/xbmc/platform/android/media/drm/MediaDrmCryptoSession.cpp b/xbmc/platform/android/media/drm/MediaDrmCryptoSession.cpp index e74dc7e748..59a17a6c07 100644 --- a/xbmc/platform/android/media/drm/MediaDrmCryptoSession.cpp +++ b/xbmc/platform/android/media/drm/MediaDrmCryptoSession.cpp @@ -170,8 +170,17 @@ void CMediaDrmCryptoSession::RestoreKeys(const std::string& keySetId) if (m_mediaDrm && keySetId != m_keySetId) { m_mediaDrm->restoreKeys(*m_sessionId, std::vector<char>(keySetId.begin(), keySetId.end())); - m_hasKeys = true; - m_keySetId = keySetId; + if (xbmc_jnienv()->ExceptionCheck()) + { + CLog::Log(LOGERROR, "MediaDrm: restoreKeys exception"); + xbmc_jnienv()->ExceptionDescribe(); + xbmc_jnienv()->ExceptionClear(); + } + else + { + m_hasKeys = true; + m_keySetId = keySetId; + } } } |