<pre style='margin:0'>
Renee Otten (reneeotten) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/a696131c809d596963845f81c00b43db7fb41397">https://github.com/macports/macports-ports/commit/a696131c809d596963845f81c00b43db7fb41397</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'> new a696131c809 qt6: update to 6.8.2
</span>a696131c809 is described below
<span style='display:block; white-space:pre;color:#808000;'>commit a696131c809d596963845f81c00b43db7fb41397
</span>Author: Renee Otten <reneeotten@macports.org>
AuthorDate: Fri Jan 31 21:55:54 2025 -0500
<span style='display:block; white-space:pre;color:#404040;'> qt6: update to 6.8.2
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> - use Python 3.13
</span><span style='display:block; white-space:pre;color:#404040;'> - fix livecheck
</span><span style='display:block; white-space:pre;color:#404040;'> - add postgresql16 and postgresql17 (default)
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Closes: https://trac.macports.org/ticket/71997
</span>---
aqua/qt6/Portfile | 266 +++++++++++----------
.../files/CVE-2025-23050-qtconnectivity-6.8.diff | 220 -----------------
2 files changed, 141 insertions(+), 345 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/aqua/qt6/Portfile b/aqua/qt6/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 4ad54edd3c1..b89ea246525 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/aqua/qt6/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/aqua/qt6/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -18,7 +18,7 @@ license {LGPL-3 GPL-3 OpenSSLException}
</span>
homepage https://www.qt.io
<span style='display:block; white-space:pre;background:#ffe0e0;'>-version 6.8.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version 6.8.2
</span>
# get Qt's version numbers
set branch [join [lrange [split ${version} .] 0 1] .]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -53,11 +53,15 @@ if {${os.platform} eq "darwin" && [vercmp ${macosx_deployment_target} >= 15.0]}
</span> macosx_deployment_target 14.0
}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# Cannot get qt6-qtbase to configure without setting this - appears to be new
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# in version 6.8.2...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+use_xcode yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> # MacPorts LLVM/Clang version to use when required
set llvm_version 18
# MacPorts Python branch & version to use when required
<span style='display:block; white-space:pre;background:#ffe0e0;'>-set python_branch 3.12
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set python_branch 3.13
</span> set python_version [join [split ${python_branch} .] ""]
############################################################################### Modules Not Considered
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -97,9 +101,9 @@ set python_version [join [split ${python_branch} .] ""]
</span> array set modules {
qtbase {
{
<span style='display:block; white-space:pre;background:#ffe0e0;'>- b072164e9f652d4e0cddce1cd209f98289f82448 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 40b14562ef3bd779bc0e0418ea2ae08fa28235f8ea6e8c0cb3bce1d6ad58dcaf \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 48220752
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 87ef6bb79d3e35f225cc772628cf8144bdcf0bbd \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 012043ce6d411e6e8a91fdc4e05e6bedcfa10fcb1347d3c33908f7fdd10dfe05 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 48264736
</span> }
""
"port:brotli path:bin/dbus-daemon:dbus port:double-conversion port:freetype
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -112,14 +116,14 @@ array set modules {
</span> "Qt OpenGL" "Qt Platform Headers" "Qt Print Support" "Qt XML"}
""
"variant overrides: "
<span style='display:block; white-space:pre;background:#ffe0e0;'>- "revision 1"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "revision 0"
</span> "License: "
}
qtsvg {
{
<span style='display:block; white-space:pre;background:#ffe0e0;'>- 58b218ef51fc4362474dea36eb2424dcd89b0b1a \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 3d0de73596e36b2daa7c48d77c4426bb091752856912fba720215f756c560dd0 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 2006760
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 3ab9ec75cc33e0141a25c3328dab6eb137465cc8 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ aa2579f21ca66d19cbcf31d87e9067e07932635d36869c8239d4decd0a9dc1fa \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 2006996
</span> }
""
"port:zlib"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -132,9 +136,9 @@ array set modules {
</span> }
qtdeclarative {
{
<span style='display:block; white-space:pre;background:#ffe0e0;'>- a1ee70903d445840a3dd27d053cb240695a2f9f1 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 95d15d5c1b6adcedb1df6485219ad13b8dc1bb5168b5151f2f1f7246a4c039fc \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 36463572
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 61ca5be95093a30872c6138fe8653feb41bc2fcf \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 144d876adc8bb55909735143e678d1e24eadcd0a380a0186792d88b731346d56 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 36485320
</span> }
""
""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -147,9 +151,9 @@ array set modules {
</span> }
qtmultimedia {
{
<span style='display:block; white-space:pre;background:#ffe0e0;'>- 396231e4d57a893ee751380c60b19c11699bf780 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 75fa87134f9afab7f0a62c55a4744799ac79519560d19c8e1d4c32bdd173f953 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 9664564
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 41557962a35812a723b74770238dc35e57244ddd \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 34f561fdc07b158bcc4ad040b596fc6086c48908060e854b473b557e4feb1569 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 9646120
</span> }
""
"port:ffmpeg7 port:pulseaudio"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -162,9 +166,9 @@ array set modules {
</span> }
qttools {
{
<span style='display:block; white-space:pre;background:#ffe0e0;'>- da1318133858f7939b54483c64d6d1a69585e2eb \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 9d43d409be08b8681a0155a9c65114b69c9a3fc11aef6487bb7fdc5b283c432d \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 10293192
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 2649577c33ad0c896e603189edee44e61ac739b7 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 326381b7d43f07913612f291abc298ae79bd95382e2233abce982cff2b53d2c0 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 10297596
</span> }
""
"port:clang-${llvm_version} path:lib/pkgconfig/libzstd.pc:zstd"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -177,9 +181,9 @@ array set modules {
</span> }
qttranslations {
{
<span style='display:block; white-space:pre;background:#ffe0e0;'>- c0c567f5d08f173835a9edde49dc3a4d198cf1e2 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 635a6093e99152243b807de51077485ceadd4786d4acb135b9340b2303035a4a \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 1550288
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ e2717245cbdeb4aa4aa1e59e72388fd0a37494d8 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ d2106e8a580bfd77702c4c1840299288d344902b0e2c758ca813ea04c6d6a3d1 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1550960
</span> }
""
""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -192,9 +196,9 @@ array set modules {
</span> }
qtdoc {
{
<span style='display:block; white-space:pre;background:#ffe0e0;'>- a2367391cefea63ce6f41b55d4a71d2de4297462 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 70a74663db3989913e547fa17130bdc8c2ccfa36441b5041db406c31eccd7bb2 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 46007920
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 9a0ad12ca51a61ce9a753e97ad63c233784b6bcf \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ b3ce5b04c5c950ed3052b247d10ca6929319f03dc276cc2bd8884dad9e555dc5 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 46012392
</span> }
""
""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -207,9 +211,9 @@ array set modules {
</span> }
qtlocation {
{
<span style='display:block; white-space:pre;background:#ffe0e0;'>- bdf6d11672b04ad276dc08799b8f901df4ba2ab8 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 9070db5eb8bb873a1d4e49d3aa922e37e22771c6636d031d3a9f6addae4b59ef \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 3164180
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ e55bd917b646a01d7073b307749ebfef0ef90052 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 93490bcb416b8602ead6f335fb97f82c996e13bb8af25ea991f541a39b7d1719 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 3164164
</span> }
""
""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -222,9 +226,9 @@ array set modules {
</span> }
qtpositioning {
{
<span style='display:block; white-space:pre;background:#ffe0e0;'>- 8db0294cab811b699d7f812dbea7b9aefcb269a8 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- e310e7232591d4beb1785bfff8ff3e77430bdf5e9a17f56694b732f5267df78d \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 661544
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 757344aaca29bcee9cf0632de3ff8669fbe9a904 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ df30664f4e936466a7e1157ff26abc61efb5e94c9eb8750e1bcdffeec95db8e5 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 661464
</span> }
""
"port:gconf port:gettext-runtime path:lib/pkgconfig/glib-2.0.pc:glib2"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -237,9 +241,9 @@ array set modules {
</span> }
qtsensors {
{
<span style='display:block; white-space:pre;background:#ffe0e0;'>- 24dd8619a10fb014399a4fe2198f42e71381b858 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 41f49b614850d40c647b80e70ef6be759e8fc90ac6cce3ab6f82a357201d9750 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 1498024
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 230fc6908e53fde7f1f76732a364e558b9fab459 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 8a817c9b001ad0abdbf15064826ca6a8ee6b66fef8f04b4343ac9f7b2ddbf4ca \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1498148
</span> }
""
""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -252,9 +256,9 @@ array set modules {
</span> }
qtconnectivity {
{
<span style='display:block; white-space:pre;background:#ffe0e0;'>- 064805d822ec240d9f9e68970721a839deb2cd6c \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ccfd46e7ad2290710788274e145fb1f224d8a5ce360764ec10824b5908a6441c \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 1067952
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 29932a470986c276d6d3ea69227dcaaacea0738e \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ e617120e084ac369fd6064f2c177de9e1c2cd9989a1f1774eea131800d52812a \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1069068
</span> }
""
""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -262,14 +266,14 @@ array set modules {
</span> {"Qt Bluetooth" "Qt NFC"}
""
"variant overrides: "
<span style='display:block; white-space:pre;background:#ffe0e0;'>- "revision 1"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "revision 0"
</span> "License: "
}
qt3d {
{
<span style='display:block; white-space:pre;background:#ffe0e0;'>- e56f6a52296b843df4504d71095de0f047afb516 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 08b006871b7bad92597c6b588ca921f630131e579e25079e49c0b34c0d7c4236 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 141818588
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 3e16994aac1631763add26023a3c2e84b701efe6 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 577a6352f091a8d5fd087a0ac948befb185583959ee4048009073f0b377b8c44 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 141821364
</span> }
""
"port:assimp port:zlib port:minizip port:pugixml"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -282,9 +286,9 @@ array set modules {
</span> }
qtimageformats {
{
<span style='display:block; white-space:pre;background:#ffe0e0;'>- 6e64065ce261a84631326cd8968e48439618d7a5 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 138cc2909aa98f5ff7283e36eb3936eb5e625d3ca3b4febae2ca21d8903dd237 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 2024820
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ f2a6950b3e79b14173a89fef6abaa3f9711616b6 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ d2a1bbb84707b8a0aec29227b170be00f04383fbf2361943596d09e7e443c8e1 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 2036976
</span> }
""
"path:lib/pkgconfig/jasper.pc:jasper port:libmng port:tiff port:webp
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -298,9 +302,9 @@ array set modules {
</span> }
qtserialbus {
{
<span style='display:block; white-space:pre;background:#ffe0e0;'>- a814e354164298f3fb46b2aa6e90b73314ffa67a \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 40788d92ec5c3ae297818e9f9eea9d21e398a54fa3fd8ddd530d324548ed15da \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 548316
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 656293b3d8cbc0497f5c671c654b7bb7a93f91cb \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1919d6bad2d935587fdb629c9737ced2ffe3c104c6b54bedb350ea9593b9a112 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 548272
</span> }
""
""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -313,9 +317,9 @@ array set modules {
</span> }
qtserialport {
{
<span style='display:block; white-space:pre;background:#ffe0e0;'>- c99755a261190e0da52fc4c4f416c923abca8bd1 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 098e72a5c06d7db003e3eea1b0ed72d7308e3ea9cb9e89b538816dc96c938395 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 273504
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ d7eebd147c2d432b9730538fc9fcc4c44fcf38ec \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ed17e02361e989f149f58d021ab8cd66f21db4cdfb8cde0a462017e6ac1e3be7 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 274700
</span> }
""
""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -328,9 +332,9 @@ array set modules {
</span> }
qtwebsockets {
{
<span style='display:block; white-space:pre;background:#ffe0e0;'>- 51223915d8a3affcef37b48ae41443305e9fa053 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- e4cfdae8760bedd1c2b00429a6c9bf88cc11c5018dcb46bde277fb1edf341e3f \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 460488
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1a3a74b02c38c7389941bdf704f338dbc6073666 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 919df562ba3446c8393992d112085ad2d96d23aaf802b1cd7a30bf3ba2fe8cbe \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 460372
</span> }
""
""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -343,9 +347,9 @@ array set modules {
</span> }
qtwebchannel {
{
<span style='display:block; white-space:pre;background:#ffe0e0;'>- e883f39b6b64495c397ab5c88fc9d3c771916dec \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 6b139f7f9128309e924da145023fa8ea87922bd79693392b3b2e4ba568a5763a \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 207412
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ dffa624e99483cf79f8fbb98f4b3655d3ca584d8 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 869f1e53f44673a57670005b1239cd67b9a5f372c8cae799c1e4af3f1c68b7ac \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 207372
</span> }
""
""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -358,9 +362,9 @@ array set modules {
</span> }
qtwebengine {
{
<span style='display:block; white-space:pre;background:#ffe0e0;'>- a377a8c9afa72c5f081ac61f4fd4c6f93a167753 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 1ba8e03ac8edcf50ce830e49b63db983de22e96757452975c1d3e6d120ae91bc \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 566480152
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 606395b354d44fa13df2e008b545f05acea2c2a0 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ff95987f16c197b31ad4d96972f8d9b00c740c5bed70c3e68ee42d673ee54802 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 566518084
</span> }
"path:bin/node:nodejs20 port:python${python_version} port:py${python_version}-html5lib port:py${python_version}-ply"
"port:libpng port:zlib"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -373,9 +377,9 @@ array set modules {
</span> }
qtwebview {
{
<span style='display:block; white-space:pre;background:#ffe0e0;'>- 7d4df00b8daf0072520d9e03aa30a124dbce077e \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- f56bc09e9c84fa06f3955871ba37065556696c72be9c7620925eb0fd83569e22 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 139068
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 6491f574468d501cd9de698bab8dce3860eafad6 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 86b436271193d958119bf8866dec16b6ad3879c8e3e06458e3f79ca846bed043 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 139040
</span> }
""
""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -388,9 +392,9 @@ array set modules {
</span> }
qtcharts {
{
<span style='display:block; white-space:pre;background:#ffe0e0;'>- 4f51f3bd597ab7a121d161cc3865be2626626334 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 2edea3f16e248ef508d99332798645b7f5ab6edbbf2e3d7d78fb674156f07d29 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 4662224
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 0bceab1455b560e6aecc07cc4b9567b215c48632 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ec7c84da1a5d7b2f8cea610df6f993fa3c48990dc9f6bec995c69c5bfb34c55f \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 4662320
</span> }
""
""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -403,9 +407,9 @@ array set modules {
</span> }
qtdatavis3d {
{
<span style='display:block; white-space:pre;background:#ffe0e0;'>- 6b6693d6e2d1f39674e27c34af85e4b793ad1869 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- dae68fe06db8aa3adedb3067c733352bcb29e42c8afcdc02cfda6755da504b0e \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 3952600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 52528327f3809e654c10399b944641e56fe9b17e \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cda29241af5f6f983c2c9864a4920fbfde42521e3e6974758914308d95c51e26 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 3952576
</span> }
""
""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -418,9 +422,9 @@ array set modules {
</span> }
qtvirtualkeyboard {
{
<span style='display:block; white-space:pre;background:#ffe0e0;'>- 8bd5834b5174b9dd86a4f30d7d8df605f5276ec1 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 1022a3bc4093ec732e85b659158c8a70a31eecbd0dfef4e4f6c67f474f89a264 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 3264444
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ c25712af284d7dfb114f0c232850fd509efaf060 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 2ddce5156978b5da04c97b0de1abb9d5172a06796b56bca53cbb5e976277cb27 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 3264624
</span> }
""
"port:hunspell"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -433,9 +437,9 @@ array set modules {
</span> }
qtscxml {
{
<span style='display:block; white-space:pre;background:#ffe0e0;'>- 96165c245503229065345370da03548ec39bb8f4 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 2f406f44cfacd6eddb90468012a5d1d99d7a64ec05a21a2a7eda9dfc12614fd6 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 558424
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ b32a73e127d2d2bf2d249ccc428f339db6419024 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 683c4a11a24001e901cc84853723046a1ba27004bcc06680a72eaac6cf8ea193 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 558848
</span> }
""
""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -448,9 +452,9 @@ array set modules {
</span> }
qtspeech {
{
<span style='display:block; white-space:pre;background:#ffe0e0;'>- f3e0a772e0b9f27e1cdc6feec9898c278bb8eccc \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- b0c5fe36c157b0b0cceb89d0d6325e539652f33963f7424cc70300870ce1acdf \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 262512
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 91a58559fa9a0a04dc89237d04b64f3b4915cd51 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ e09b52336bb90090f4582a382fa084f7573ebd207cc81f3066ef94cc1bf202c3 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 262484
</span> }
""
"port:flite"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -463,9 +467,9 @@ array set modules {
</span> }
qtnetworkauth {
{
<span style='display:block; white-space:pre;background:#ffe0e0;'>- 618400a54094a0e90996e08417966d6f85023192 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 118664ba929c5fbbdf822438bd69bd43674cfee82e504e143da600fe47c74024 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 253260
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ e677e8d847495beb1bcd43663129d32ac2664f64 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ d495b4b527ec87aba65af1a8e20291eb0a4826ddfafa78b0cb0ac1ef4455b4d7 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 255292
</span> }
""
""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -478,9 +482,9 @@ array set modules {
</span> }
qtremoteobjects {
{
<span style='display:block; white-space:pre;background:#ffe0e0;'>- c4171ec120151909e485e428506c6c0d9fb6199b \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 7ef2870f05614b71d1cfdd7ac12acef5294abc43da244a6e9e411f21208f59f8 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 537132
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 8b3333788e9a5aae6ac611abeb363ef7c2cd4318 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ d02ad3ede11b0bbf8187cb79227383aed5b4538107b522d1249eab7b1b5eb629 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 537584
</span> }
""
""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -493,9 +497,9 @@ array set modules {
</span> }
qtlottie {
{
<span style='display:block; white-space:pre;background:#ffe0e0;'>- a36b0bed2716b331f461ebbdbeb64db5cbb5e3e3 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 824344c5fcbfdf92b424c21ac96a56b736d5e96afa838689b6207f58e170174a \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 83812
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 5953a4df02471f5501ac2fe80a3e4c4be79a3128 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 5ed43eb20d0393dd05c890fb3548deb3b82bad6b0265c12d4995940b238ebe20 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 84196
</span> }
""
""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -508,9 +512,9 @@ array set modules {
</span> }
qtquicktimeline {
{
<span style='display:block; white-space:pre;background:#ffe0e0;'>- e4fb95b152a1bbb3a15cf7397f468f06250e3444 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- fdbc198e27fd7bce0801fb3cfa336e81932607e6a36c97ae8394880eedfe12a3 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 110612
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1120b283f1f6723d1218d53b8bbc4637f0388fc9 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ c33dbceed9fabb3d7f6731a68aee602bad5a04bb6f0a473792e61858c0bc1aaa \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 110584
</span> }
""
""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -523,9 +527,9 @@ array set modules {
</span> }
qtquick3d {
{
<span style='display:block; white-space:pre;background:#ffe0e0;'>- 6a21bc869ad2bffcc5f7d39f80f8d467d4ec6629 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 3f3d345e6c95fcd40ab37e6a37cd31811e5d239dea8e142e632d4ea41bf20ce7 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 75292284
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 98b3d743b8396dfac9f891114c7f778f7f82c329 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 084cebccb8c5b1c6bafb7756ab89b08ced23c20cd2e996ed54909a154a9f0b6d \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 75298116
</span> }
""
"port:assimp"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -538,9 +542,9 @@ array set modules {
</span> }
qtshadertools {
{
<span style='display:block; white-space:pre;background:#ffe0e0;'>- 6aacd53eecfa4890f47b20cc8a615884ba6a93ba \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 55b70cd632473a8043c74ba89310f7ba9c5041d253bc60e7ae1fa789169c4846 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 1138644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 20aa995df753e268d0328ce4f8bd4ad3bcd3b1c9 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ d1d5f90e8885fc70d63ac55a4ce4d9a2688562033a000bc4aff9320f5f551871 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1138404
</span> }
""
""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -553,9 +557,9 @@ array set modules {
</span> }
qt5compat {
{
<span style='display:block; white-space:pre;background:#ffe0e0;'>- af47ecdd1e3ac8df57036f765e4830c4d9421182 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 05c8c088b4cd8331fa8a9c8b7ff7c42a088cb112e673eae5708048d0131264fc \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 14632944
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 2dd5f31c516bbf373727af3cd5353be372941013 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ b53154bc95ec08e2ddc266bef250fbd684b4eb2df96bc8c27d26b1e953495316 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 14637788
</span> }
""
"path:lib/pkgconfig/icu-uc.pc:icu port:libiconv"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -563,14 +567,14 @@ array set modules {
</span> {"Qt 5 Core Compatibility APIs"}
"status = deprecated"
"variant overrides: "
<span style='display:block; white-space:pre;background:#ffe0e0;'>- "revision 1"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "revision 0"
</span> "License: "
}
qtlanguageserver {
{
<span style='display:block; white-space:pre;background:#ffe0e0;'>- 7584894aec387dc37c8e5d6883e88caab87a33dc \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 865e9436c1432a53e38a30625b6cee60bf72553ff508047115513a233c8e6d7e \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 150260
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 9bf922c030a8d411a2acf0b313dd4d6c69895e21 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 9eeb74ac15334c08777548c01e4ede80a4e2d36f1ebcb322423f24f14c2785fb \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 150280
</span> }
""
""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -583,9 +587,9 @@ array set modules {
</span> }
qthttpserver {
{
<span style='display:block; white-space:pre;background:#ffe0e0;'>- fd17f866740e16d7dcf717cd3c78325ff85925e9 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 5d8cb90fddc359b1c74d1e344656785c418483b185d32d97c12d834ec39b0b27 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 183724
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 9ea57079a7fe7e56271d85af3bdce69e08c68f14 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 2d9517c1049a5b330831f7adc1de26d8db5357fdebe616c0a29e9ae1d8900692 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 183844
</span> }
""
""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -598,9 +602,9 @@ array set modules {
</span> }
qtquick3dphysics {
{
<span style='display:block; white-space:pre;background:#ffe0e0;'>- b5e3f720d781dad4313259df65805f4187392479 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 652e8edb572f0322fb4ab221ed6f7205df5c045e47500990e3c7b748975f0a6e \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 4709588
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ d9befcb88663946ce283837e09b800f3b00d28fc \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ df18262d4a7699a29796f16b41186060df172155110229ab3ccd4c6040ba793f \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 4680424
</span> }
""
""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -613,9 +617,9 @@ array set modules {
</span> }
qtquickeffectmaker {
{
<span style='display:block; white-space:pre;background:#ffe0e0;'>- c3ab0c991a288ffa8130e84a274cf79e97e5ec01 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 2d4fdf13356abd90b272cc1836bccb6d6ec8849b72173ea3daef0a5c42fb51f6 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 4348024
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ f733c07578c28bdeab7e7487701eca057d1752e1 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 4fcf3c5893172816dfdc438bd4b6b105e15eafd4aeb9c5ac48ea6d7d720e607c \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 4348100
</span> }
""
""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -628,9 +632,9 @@ array set modules {
</span> }
qtgraphs {
{
<span style='display:block; white-space:pre;background:#ffe0e0;'>- f58b8d104373c3575c3df960f6ec235fa8b8f946 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 1e46e3de69936835652ab40ef8caf5824ea71e26871274561fb65ec142d54a80 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 4826412
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 5ea80ac5767b33665b1f9163c215260ac332f09a \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 05c7a4a3482f6ffd7e9005964bb5ab634062a6d023ccd96f5447db6eae3c46d4 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 4868552
</span> }
""
""
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -683,6 +687,22 @@ array set sql_plugins {
</span> "revision 0"
{sql-psql}
{
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ postgresql17 {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "port:postgresql17"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DPostgreSQL_INCLUDE_DIR=${prefix}/include/postgresql17
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DPostgreSQL_TYPE_INCLUDE_DIR=${prefix}/include/postgresql17
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DCMAKE_LIBRARY_PATH=${prefix}/lib/postgresql17
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ postgresql16 {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "port:postgresql16"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DPostgreSQL_INCLUDE_DIR=${prefix}/include/postgresql16
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DPostgreSQL_TYPE_INCLUDE_DIR=${prefix}/include/postgresql16
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -DCMAKE_LIBRARY_PATH=${prefix}/lib/postgresql16
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span> postgresql15 {
"port:postgresql15"
{
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -983,13 +1003,15 @@ foreach {driver driver_info} [array get sql_plugins] {
</span> if { ([variant_exists ${variant_name}] && [variant_isset ${variant_name}]) || [llength ${conflict_list}]==0 } {
depends_lib-append {*}[lindex ${variant_info} 0]
configure.post_args-append {*}[subst [lindex ${variant_info} 1]]
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>- # :info:configure CMake Error at /opt/local/libexec/qt6/lib/cmake/Qt6/QtPublicSbomHelpers.cmake:2552 (message):
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # :info:configure No SBOM project name was set.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.post_args-append -DQT_SBOM_VERIFY=OFF \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- -DQT_GENERATE_SBOM=OFF
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ post-destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[file exists ${qt6.dir}/sbom/qsqlitedriverplugins-${version}.spdx]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ file delete ${destroot}${qt6.dir}/sbom/qsqlitedriverplugins-${version}.spdx
</span> }
}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ notes "${destroot}${qt6.dir}/sbom/qsqlitedriverplugins-${version}.spdx"
</span> }
}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1035,10 +1057,6 @@ subport ${name}-qtwebengine {
</span> }
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-subport ${name}-qtconnectivity {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- patchfiles-append CVE-2025-23050-qtconnectivity-6.8.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> subport ${name}-qtmultimedia {
# GStreamer will be found if gstreamer1 and gstreamer1-gst-plugins-base are installed
# however, an error will ensue since the GStreamer support requires "Linux DMA buffer support"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1073,9 +1091,7 @@ if { ${subport} eq "${name}-qtbase" || ${subport} eq "${name}-qtbase-docs" } {
</span> "-prefix ${qt6.dir}"
# configure options:
<span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-append -opensource \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- -confirm-license \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- -shared \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append -shared \
</span> -accessibility
# SQL Options
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1403,5 +1419,5 @@ subport ${name} {
</span>
livecheck.type regex
livecheck.url https://download.qt.io/archive/qt/${branch}/
<span style='display:block; white-space:pre;background:#ffe0e0;'>- livecheck.regex (\\d+(\\.\\d+)+)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ livecheck.regex (\\d+(\\.\\d+)\\.\\d+)
</span> }
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/aqua/qt6/files/CVE-2025-23050-qtconnectivity-6.8.diff b/aqua/qt6/files/CVE-2025-23050-qtconnectivity-6.8.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 18606f0fc24..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/aqua/qt6/files/CVE-2025-23050-qtconnectivity-6.8.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,220 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From 465e3f3112a9c158aa6dd2f8b9439ae6c2de336f Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From: Ivan Solovev <ivan.solovev@qt.io>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Date: Thu, 02 Jan 2025 16:48:49 +0100
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH] QLowEnergyControllerPrivateBluez: guard against malformed replies
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-The QLowEnergyControllerPrivateBluez::l2cpReadyRead() slot reads the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-data from a Bluetooth L2CAP socket and then tries to process it
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-according to ATT protocol specs.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-However, the code was missing length and sanity checks at some
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-codepaths in processUnsolicitedReply() and processReply() helper
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-methods, simply relying on the data to be in the proper format.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-This patch adds some minimal checks to make sure that we do not read
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-past the end of the received array and do not divide by zero.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-This problem was originally pointed out by Marc Mutz in an unrelated
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-patch.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Pick-to: 6.5 5.15
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Change-Id: I8dcfe031f70ad61fa3d87dc9d771c3fabc6d0edc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Reviewed-by: Alex Blasche <alexander.blasche@qt.io>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Reviewed-by: Juha Vuolle <juha.vuolle@qt.io>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-(cherry picked from commit aecbd657c841a2a8c74631ceac96b8ff1f03ab5c)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-(cherry picked from commit 53e991671f725c136e9aa824c59ec13934c63fb4)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git a/src/bluetooth/qlowenergycontroller_bluez.cpp b/src/bluetooth/qlowenergycontroller_bluez.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index 6f0c985..2bd0cb6 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/bluetooth/qlowenergycontroller_bluez.cpp.orig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/bluetooth/qlowenergycontroller_bluez.cpp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -64,14 +64,15 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const int maxPrepareQueueSize = 1024;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--static void dumpErrorInformation(const QByteArray &response)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+/* returns false if the format is incorrect */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+static bool dumpErrorInformation(const QByteArray &response)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const char *data = response.constData();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (response.size() != 5
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- || (static_cast<QBluezConst::AttCommand>(data[0])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- != QBluezConst::AttCommand::ATT_OP_ERROR_RESPONSE)) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- qCWarning(QT_BT_BLUEZ) << QLatin1String("Not a valid error response");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- return;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- QBluezConst::AttCommand lastCommand = static_cast<QBluezConst::AttCommand>(data[1]);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -126,6 +127,8 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- qCDebug(QT_BT_BLUEZ) << "Error:" << errorCode << "Error description:" << errorString
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- << "last command:" << lastCommand << "handle:" << handle;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return true;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- static int getUuidSize(const QBluetoothUuid &uuid)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -903,6 +906,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Q_ASSERT(charData);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Q_ASSERT(data);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ Q_ASSERT(elementLength >= 5);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- QLowEnergyHandle attributeHandle = bt_get_le16(&data[0]);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- charData->properties =
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -912,7 +916,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- // Bluetooth LE data comes as little endian
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (elementLength == 7) // 16 bit uuid
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- charData->uuid = QBluetoothUuid(bt_get_le16(&data[5]));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ else if (elementLength == 21) // 128 bit uuid
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- charData->uuid = QUuid::fromBytes(&data[5], QSysInfo::LittleEndian);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- qCDebug(QT_BT_BLUEZ) << "Found handle:" << Qt::hex << attributeHandle
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -929,6 +933,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Q_ASSERT(foundServices);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Q_ASSERT(data);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ Q_ASSERT(elementLength >= 6);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- QLowEnergyHandle attributeHandle = bt_get_le16(&data[0]);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -938,9 +943,14 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- // data[2] -> included service start handle
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- // data[4] -> included service end handle
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ // TODO: Spec v. 5.3, Vol. 3, Part G, 4.5.1 mentions that only
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ // 16-bit UUID can be returned here. If the UUID is 128-bit,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ // then it is omitted from the response, and should be requested
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ // separately with the ATT_READ_REQ command.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (elementLength == 8) //16 bit uuid
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- foundServices->append(QBluetoothUuid(bt_get_le16(&data[6])));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ else if (elementLength == 22) // 128 bit uuid
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- foundServices->append(QUuid::fromBytes(&data[6], QSysInfo::LittleEndian));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- qCDebug(QT_BT_BLUEZ) << "Found included service: " << Qt::hex
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -949,17 +959,29 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return attributeHandle;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+Q_DECL_COLD_FUNCTION
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+static void reportMalformedData(QBluezConst::AttCommand cmd, const QByteArray &response)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ qCDebug(QT_BT_BLUEZ, "%s malformed data: %s", qt_getEnumName(cmd),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ response.toHex().constData());
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void QLowEnergyControllerPrivateBluez::processReply(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const Request &request, const QByteArray &response)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Q_Q(QLowEnergyController);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ // We already have an isEmpty() check at the only calling site that reads
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ // incoming data, so Q_ASSERT is enough.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ Q_ASSERT(!response.isEmpty());
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- QBluezConst::AttCommand command = static_cast<QBluezConst::AttCommand>(response.constData()[0]);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- bool isErrorResponse = false;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- // if error occurred 2. byte is previous request type
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (command == QBluezConst::AttCommand::ATT_OP_ERROR_RESPONSE) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- dumpErrorInformation(response);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (!dumpErrorInformation(response))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- command = static_cast<QBluezConst::AttCommand>(response.constData()[1]);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- isErrorResponse = true;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -972,6 +994,10 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (isErrorResponse) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- mtuSize = ATT_DEFAULT_LE_MTU;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (response.size() < 3) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ reportMalformedData(command, response);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const char *data = response.constData();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- quint16 mtu = bt_get_le16(&data[1]);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- mtuSize = mtu;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1000,8 +1026,15 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ // response[1] == elementLength. According to the spec it should be
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ // at least 4 bytes. See Spec v5.3, Vol 3, Part F, 3.4.4.10
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (response.size() < 2 || response[1] < 4) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ reportMalformedData(command, response);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- QLowEnergyHandle start = 0, end = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- const quint16 elementLength = response.constData()[1];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ const quint16 elementLength = response.constData()[1]; // value checked above
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const quint16 numElements = (response.size() - 2) / elementLength;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- quint16 offset = 2;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const char *data = response.constData();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1077,16 +1110,25 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* packet format:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- * if GATT_CHARACTERISTIC discovery
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * if GATT_CHARACTERISTIC discovery (Spec 5.3, Vol. 3, Part G, 4.6)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * <opcode><elementLength>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * [<handle><property><charHandle><uuid>]+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * The minimum elementLength is 7 bytes (uuid is always included)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- * if GATT_INCLUDE discovery
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * if GATT_INCLUDE discovery (Spec 5.3, Vol. 3, Part G, 4.5.1)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * <opcode><elementLength>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * [<handle><startHandle_included><endHandle_included><uuid>]+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ * The minimum elementLength is 6 bytes (uuid can be omitted).
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- * The uuid can be 16 or 128 bit.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ const quint8 minimumElementLength = attributeType == GATT_CHARACTERISTIC ? 7 : 6;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (response.size() < 2 || response[1] < minimumElementLength) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ reportMalformedData(command, response);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- QLowEnergyHandle lastHandle;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const quint16 elementLength = response.constData()[1];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const quint16 numElements = (response.size() - 2) / elementLength;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1283,6 +1325,12 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ // Spec 5.3, Vol. 3, Part F, 3.4.3.2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (response.size() < 6) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ reportMalformedData(command, response);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const quint8 format = response[1];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- quint16 elementLength;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- switch (format) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -1720,9 +1768,18 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- void QLowEnergyControllerPrivateBluez::processUnsolicitedReply(const QByteArray &payload)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ Q_ASSERT(!payload.isEmpty());
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const char *data = payload.constData();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- bool isNotification = (static_cast<QBluezConst::AttCommand>(data[0])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ const auto command = static_cast<QBluezConst::AttCommand>(data[0]);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ bool isNotification = (command
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- == QBluezConst::AttCommand::ATT_OP_HANDLE_VAL_NOTIFICATION);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (payload.size() < 3) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ reportMalformedData(command, payload);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- const QLowEnergyHandle changedHandle = bt_get_le16(&data[1]);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (QT_BT_BLUEZ().isDebugEnabled()) {
</span></pre><pre style='margin:0'>
</pre>