Ignore window icon in XCB when its size exceeds maximum request length
When setting a window icon with its data size exceeding the value returned by xcb_get_maximum_request_length(), the application fails with XCB error code 4 (Maximum allowed requested length exceeded). This patch adds a check if icon_data.size() exceeds xcb_get_maximum_request_length(). If that is the case the icon is being ignored and a warning is logged. Fixes: QTBUG-102628 Pick-to: 6.3 6.2 5.15 Change-Id: Id47a0833efd16cd29b030e8c880acb416cbc500b Reviewed-by: Liang Qi <liang.qi@qt.io>bb10
parent
08a4fd3570
commit
ebdaf8ef9c
|
|
@ -1328,6 +1328,12 @@ void QXcbWindow::setWindowIcon(const QIcon &icon)
|
|||
}
|
||||
|
||||
if (!icon_data.isEmpty()) {
|
||||
// Ignore icon exceeding maximum xcb request length
|
||||
if (icon_data.size() > xcb_get_maximum_request_length(xcb_connection())) {
|
||||
qWarning("Ignoring window icon: Size %llu exceeds maximum xcb request length %u.",
|
||||
icon_data.size(), xcb_get_maximum_request_length(xcb_connection()));
|
||||
return;
|
||||
}
|
||||
xcb_change_property(xcb_connection(),
|
||||
XCB_PROP_MODE_REPLACE,
|
||||
m_window,
|
||||
|
|
|
|||
Loading…
Reference in New Issue