From a2f4c09c6681de9306f628d725ed3c04210c594a Mon Sep 17 00:00:00 2001 From: Lars Op den Kamp Date: Tue, 20 Mar 2012 17:08:28 +0100 Subject: [PATCH] cec: fixed possible crash when in CLibCEC::IsLibCECActiveSource() when libCEC doesn't know which device is the active source. bugzid: 479 --- src/lib/LibCEC.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/lib/LibCEC.cpp b/src/lib/LibCEC.cpp index aeb16e2..dd8624a 100644 --- a/src/lib/LibCEC.cpp +++ b/src/lib/LibCEC.cpp @@ -614,9 +614,14 @@ void CLibCEC::RescanActiveDevices(void) bool CLibCEC::IsLibCECActiveSource(void) { - return m_cec ? - m_cec->m_busDevices[m_cec->GetActiveSource()]->GetStatus(false) == CEC_DEVICE_STATUS_HANDLED_BY_LIBCEC : - false; + bool bReturn(false); + if (m_cec) + { + cec_logical_address activeSource = m_cec->GetActiveSource(); + if (activeSource != CECDEVICE_UNKNOWN) + bReturn = m_cec->m_busDevices[activeSource]->GetStatus(false) == CEC_DEVICE_STATUS_HANDLED_BY_LIBCEC; + } + return bReturn; } cec_device_type CLibCEC::GetType(cec_logical_address address) -- 2.34.1