From e2800c154cf5ce325adf02f7473ce4686962f383 Mon Sep 17 00:00:00 2001 From: Lars Op den Kamp Date: Wed, 25 Jan 2012 16:45:31 +0100 Subject: [PATCH] cec: fixed possible deadlock because of a negative timeout in CAdapterCommunication::WaitForTransmitSucceeded() --- src/lib/adapter/AdapterCommunication.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/lib/adapter/AdapterCommunication.cpp b/src/lib/adapter/AdapterCommunication.cpp index e143b08..77c9032 100644 --- a/src/lib/adapter/AdapterCommunication.cpp +++ b/src/lib/adapter/AdapterCommunication.cpp @@ -374,8 +374,11 @@ bool CAdapterCommunication::WaitForTransmitSucceeded(CCECAdapterMessage *message while (!bTransmitSucceeded && !bError && (message->transmit_timeout == 0 || iNow < iTargetTime)) { CCECAdapterMessage msg; + int32_t iWait = (int32_t)(iTargetTime - iNow); + if (iWait <= 5 || message->transmit_timeout <= 5) + iWait = CEC_DEFAULT_TRANSMIT_WAIT; - if (!Read(msg, message->transmit_timeout > 0 ? (int32_t)(iTargetTime - iNow) : 1000)) + if (!Read(msg, iWait)) { iNow = GetTimeMs(); continue; -- 2.34.1