[qt/qt/qtbase]: Summary of bulk changes made
KDE Git Services - Bulk Change <[email protected]>
| Newsgroups | gmane.comp.kde.cvs |
|---|---|
| Message-ID | <[email protected]> |
Git repository change summary for qt/qt/qtbase Pushed by mirror-service into branch 'dev'. Changed from 5b048f9c4633d709442176e10c1c8e0cb384ae98 to eab8f8afb059b2489022ea9c13e7aedd6b8b5138 Acknowledgement was received that this change introduces only existing code that has been pushed to another public open source repository. This change contains the following new commits: Git commit 1b57e51521c6c5e08abd7446ff18ced04b86d9a8 by Laszlo Agocs on 04/08/2026 at 00:52.. rhi: Validate element counts when deserializing a QShader The .qsb deserializers took every list element count straight from the QDataStream and passed it to QList::resize(). A negative count violates the resize() precondition, which is only guarded by a Q_ASSERT and so is undefined behavior in release builds, while a huge count leads to a pointless large allocation and a long spin over a stream that ran out of data long ago. QDataStream::status() was never consulted. Add QShaderPrivate::readCount() and use it for all such counts, both in QShader::fromSerialized() and in the QShaderDescription parsing. It rejects a count when the stream is no longer Ok, when it is negative, or when it exceeds what the remaining data could possibly hold: every element of every list takes at least one 32-bit value, hence the bytesAvailable() / 4 bound. On failure the stream is switched to ReadCorruptData, which makes all subsequent reads no-ops, so the error propagates up to fromSerialized(), where the status is now checked once more before handing out the result. A truncated package therefore ends up as an invalid QShader, which is what the documentation already promised. This does not change the fact that all input is still expected to be fully trusted content. Pick-to: 6.12 Change-Id: I0c8523d050a330fa0067399b8e94c54e9059ae9c Reviewed-by: Andy Nichols <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/1b57e51521c6c5e08abd7446ff18ced04b86d9a8 Git commit d3ed957c713b97aa59aac8ddaf7103052ceaed43 by Laszlo Agocs on 04/08/2026 at 00:52.. rhi: Limit struct nesting depth when deserializing a QShader This does not change the fact that all input is still expected to be fully trusted content. Pick-to: 6.12 Change-Id: Ia2c3df23027025eff4644eff3b9abb16eea8ab54 Reviewed-by: Andy Nichols <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/d3ed957c713b97aa59aac8ddaf7103052ceaed43 Git commit f3ffe251fc53ff2fff083fe3fe54cea60348dca9 by Laszlo Agocs on 04/08/2026 at 00:52.. Guard Vulkan device function resolver data structure deviceFunctions() and resetDeviceFunctions() both mutate the deviceFuncs hash without any synchronization, while the documentation invites calling deviceFunctions() repeatedly from renderer code that may well be multithreaded. Pick-to: 6.12 Change-Id: I799dfa29cb1010fe4df3f34001a4a5c50635d59f Reviewed-by: Andy Nichols <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/f3ffe251fc53ff2fff083fe3fe54cea60348dca9 Git commit 62c25f665a60908ad8cb76172bf49682698faba3 by Laszlo Agocs on 04/08/2026 at 00:52.. Protect Vulkan debug filter lists against concurrent access Pick-to: 6.12 Change-Id: Ic81627fa5ae4c62bf97679914f9331cccdca9486 Reviewed-by: Andy Nichols <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/62c25f665a60908ad8cb76172bf49682698faba3 Git commit 19c47f09caad1c18e62846d5ce07a1585251c3d4 by Laszlo Agocs on 04/08/2026 at 00:52.. Handle it better when create() failed in QVulkanInstance Pick-to: 6.12 Change-Id: I9a86188612784801880bb53a33dc8de3d3ec42aa Reviewed-by: Andy Nichols <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/19c47f09caad1c18e62846d5ce07a1585251c3d4 Git commit 4be989168ad0f9432339bbd3b25e24d86df4da73 by Laszlo Agocs on 04/08/2026 at 00:52.. rhi: vulkan: Expand docs on setVkInstance and extensions Pick-to: 6.12 Change-Id: Id9b12a4995c24098b9a0c01e6569e452190e00aa Reviewed-by: Andy Nichols <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/4be989168ad0f9432339bbd3b25e24d86df4da73 Git commit 249ea8ee9e59ce2cc9341be566ada4f1d39ce32f by Laszlo Agocs on 04/08/2026 at 00:52.. gui/opengl: Add security consideration sections to docs Task-number: QTBUG-148739 Pick-to: 6.12 6.11 6.8 Change-Id: I2bf28ba35c38d7774c2fdca085fc2fbe165f64e0 Reviewed-by: Andy Nichols <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/249ea8ee9e59ce2cc9341be566ada4f1d39ce32f Git commit 230d9f54483a207f51201fea73333f03aab0daeb by Jean-Michaël Celerier on 04/08/2026 at 02:26.. QTipLabel: guard styleSheetParentDestroyed() definition Its declaration and the styleSheetParent member are already guarded by QT_CONFIG(style_stylesheet). Pick-to: 6.12 6.11 Change-Id: Id9e73e1529d8433a48ca6d41ec5b6a9ac50f426d Reviewed-by: David Edmundson <[email protected]> Reviewed-by: Tim Blechmann <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/230d9f54483a207f51201fea73333f03aab0daeb Git commit 0e25e784273c598d3a24dceee73e3aecb0b146b9 by Jean-Michaël Celerier on 04/08/2026 at 02:26.. BrotliCommon was not being linked to in static build Pick-to: 6.12 6.11 Change-Id: Ie55fcb0160547f90450138945bec146529b5d3c4 Reviewed-by: Mårten Nordheim <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/0e25e784273c598d3a24dceee73e3aecb0b146b9 Git commit ae66214369fe9bc760aca4c525b5e5ec57c90f35 by Jean-Michaël Celerier on 04/08/2026 at 02:26.. qversiontagging: don't emit ELF symbol versions in static builds A static build has no version script, so the version nodes referenced by the .symver directives are never defined and lld rejects them. Pick-to: 6.12 6.11 Change-Id: I78cf8390fd724af89a6d8b3168bcd89f969e91c6 Reviewed-by: Thiago Macieira <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/ae66214369fe9bc760aca4c525b5e5ec57c90f35 Git commit f567bd1f79f9ab03b58dc1d732e8070c6dee7b53 by Tor Arne Vestbø on 04/08/2026 at 03:00.. macOS: Don't rely on NSApp.currentEvent when inserting text To decide whether the input method merely echoed the key press, or transformed it into something else, we compare the inserted text to the characters of the key event. We were reaching for NSApp.currentEvent to get hold of that event, but the current event may well be unrelated to the text insertion. We now use the key event we are currently interpreting, which we already keep track of. For the cases where the text insertion does not originate from a key event at all, such as the Keyboard Viewer or an accent popup, we do not have one, and will then correctly conclude that the text does not match, and send it as an input method event. The event type check is no longer needed, as the interpreted key event is always a key press. This restores the state based approach that 294e4c7aa8cacd63c01d3836ce06c1f2d8c5ad5c replaced with the current event, but without a dedicated member for it. Pick-to: 6.12 6.11 6.8 Change-Id: I22d8bedd8a09135afaa25d6334f9b34ea29e8842 Reviewed-by: Doris Verria <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/f567bd1f79f9ab03b58dc1d732e8070c6dee7b53 Git commit 08058688a9fa72262b43a479a3a7a53d93165226 by Tor Arne Vestbø on 04/08/2026 at 03:00.. macOS: Don't rely on NSApp.currentEvent when inserting newlines When the input method asks us to insert a newline we base the resulting key event on the key event we are currently interpreting, and only fall back to NSApp.currentEvent when we do not have one. That fallback is not reliable, as the current event may be unrelated to the text insertion, or missing altogether. The only things we need from the event in this situation are the timestamp and the modifiers, both of which are available as current state, so we now teach KeyEvent to fall back to that when constructed without an event. NSProcessInfo.processInfo.systemUptime shares its timebase with NSEvent.timestamp, so the resulting timestamps are still comparable to those of real events. Pick-to: 6.12 6.11 6.8 Change-Id: I823f52ae5002f27a42e47d0b2ea06b5db5674bcf Reviewed-by: Doris Verria <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/08058688a9fa72262b43a479a3a7a53d93165226 Git commit a67383e2e95f9da40335a8b519a9a64382b70b47 by Tor Arne Vestbø on 04/08/2026 at 03:00.. macOS: Add privacy manifest for QtGui use of NSProcessInfo.systemUptime Per https://developer.apple.com/documentation/bundleresources/privacy-manifest-files Pick-to: 6.12 6.11 6.8 Change-Id: I5e2777684563bc7066b1be1790acd9f7dedd6c40 Reviewed-by: Doris Verria <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/a67383e2e95f9da40335a8b519a9a64382b70b47 Git commit 65020b43cdd2c923c42ac4bc894c967ac90a0477 by Tor Arne Vestbø on 04/08/2026 at 03:00.. macOS: Don't assume the current event is a mouse event in the tray icon The status item button's action callback has no event parameter, so we consult NSApp.currentEvent to determine the activation reason. As of macOS 27 NSControls are driven by gesture recognizers, which defers the action callback past the event that triggered it, so the current event is not necessarily a mouse event anymore, and asking a non-mouse event for its clickCount raises an exception. We now report the activation as Unknown in that situation. Determining the real activation reason without an event is a larger task, as nothing but an event carries the click count. Pick-to: 6.12 6.11 6.8 Change-Id: I48b082fcd0778c22eec71c4c96c22b812ec9fc6d Reviewed-by: Doris Verria <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/65020b43cdd2c923c42ac4bc894c967ac90a0477 Git commit 9b342ddf2a8010e50c2bcc330967077479fa862a by Tor Arne Vestbø on 04/08/2026 at 03:00.. macOS: Don't rely on NSApp.currentEvent when starting a system move QPlatformWindow::startSystemMove() carries no event, so we reached for NSApp.currentEvent to get one to hand to performWindowDragWithEvent:. That is not reliable: as of macOS 27 a gesture recognizer can defer an action callback past the event that triggered it, and the call may not originate from a mouse event in the first place. We now synthesize the event we pass along, which is what AppKit itself does in this situation, and use the current button state to decide whether a window drag is possible at all. AppKit tracks the left mouse button for the duration of the drag, so unless it is actually pressed the call would do nothing. Reporting that up front is more accurate than the old event type switch, which also claimed success for right and other button presses. Pick-to: 6.12 6.11 6.8 Change-Id: Ie8f9f55dac64210695b7555a4819246a0191a822 Reviewed-by: Doris Verria <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/9b342ddf2a8010e50c2bcc330967077479fa862a Git commit fd22838f0efb997da3462c225538508e603e201f by Tor Arne Vestbø on 04/08/2026 at 03:00.. macOS: Make the isMouseEvent helper available to the whole plugin It was a file static in qnswindow.mm, but we need the same check in other places as well. We now express it in terms of the existing cocoaEvent2QtMouseEvent, which as a side effect also covers the NSEventTypeOtherMouse* events that the file static left out, so frame strut handling and popup redirection now treat the middle mouse button like the left and right ones. Pick-to: 6.12 6.11 6.8 Change-Id: I244d962fcc52b0bbb43ec66a2860ee55a752d2ce Reviewed-by: Doris Verria <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/fd22838f0efb997da3462c225538508e603e201f Git commit eab8f8afb059b2489022ea9c13e7aedd6b8b5138 by Tor Arne Vestbø on 04/08/2026 at 03:00.. macOS: Use the live modifier state during drag and drop The NSDraggingDestination callbacks hand us an id<NSDraggingInfo>, which carries no keyboard modifier state, so we reached for NSApp.currentEvent to fill in the modifiers of the QWSI drag events. But when the drag originates in another process the target process doesn't get any events at all, leaving us with whatever unrelated event happened to be current. We now read NSEvent.modifierFlags instead, mirroring what we already do for the buttons on the adjacent line via currentlyPressedMouseButtons(). That's also the semantics we want: the user can press Option mid-drag to switch between copy and move, and the drag feedback should follow the current state, not that of the initiating press. Pick-to: 6.12 6.11 6.8 Change-Id: I4ec86585c26a324e9e909949573885cb954062e7 Reviewed-by: Doris Verria <[email protected]> https://invent.kde.org/qt/qt/qtbase/-/commit/eab8f8afb059b2489022ea9c13e7aedd6b8b5138