[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [plasma-desktop/Plasma/5.6] kcms/touchpad/src/backends/x11: Avoid dead loop for xcb_poll_for_reply i
From: Weng Xuetian <wengxt () gmail ! com>
Date: 2016-03-29 22:35:11
Message-ID: E1al2EB-000844-GP () scm ! kde ! org
[Download RAW message or body]
Git commit afd38b228960c2f5bf9a810237e04b875447301c by Weng Xuetian.
Committed on 29/03/2016 at 22:34.
Pushed by xuetianweng into branch 'Plasma/5.6'.
Avoid dead loop for xcb_poll_for_reply if xcb connection is dead.
Check the returned error and break if error happens.
M +5 -3 kcms/touchpad/src/backends/x11/xlibbackend.cpp
M +7 -1 kcms/touchpad/src/backends/x11/xrecordkeyboardmonitor.cpp
http://commits.kde.org/plasma-desktop/afd38b228960c2f5bf9a810237e04b875447301c
diff --git a/kcms/touchpad/src/backends/x11/xlibbackend.cpp \
b/kcms/touchpad/src/backends/x11/xlibbackend.cpp index 8dedcc8..347dc07 100644
--- a/kcms/touchpad/src/backends/x11/xlibbackend.cpp
+++ b/kcms/touchpad/src/backends/x11/xlibbackend.cpp
@@ -60,9 +60,11 @@ void XlibBackend::XDisplayCleanup::cleanup(Display *p)
XlibBackend* XlibBackend::initialize(QObject *parent)
{
- XlibBackend* backend = nullptr;
-
- backend = new XlibBackend(parent);
+ XlibBackend* backend = new XlibBackend(parent);
+ if (!backend->m_display) {
+ delete backend;
+ return nullptr;
+ }
return backend;
}
diff --git a/kcms/touchpad/src/backends/x11/xrecordkeyboardmonitor.cpp \
b/kcms/touchpad/src/backends/x11/xrecordkeyboardmonitor.cpp index 1dceee2..0884dad \
100644
--- a/kcms/touchpad/src/backends/x11/xrecordkeyboardmonitor.cpp
+++ b/kcms/touchpad/src/backends/x11/xrecordkeyboardmonitor.cpp
@@ -94,7 +94,13 @@ void XRecordKeyboardMonitor::processNextReply()
}
void *reply = 0;
- while (xcb_poll_for_reply(m_connection, m_cookie.sequence, &reply, 0)) {
+ xcb_generic_error_t *error = nullptr;
+ while (m_cookie.sequence && xcb_poll_for_reply(m_connection, m_cookie.sequence, \
&reply, &error)) { + if (error) {
+ std::free(error);
+ break;
+ }
+
if (!reply) {
continue;
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic