<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>