Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package qt6-languageserver for 
openSUSE:Factory checked in at 2026-08-21 16:50:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/qt6-languageserver (Old)
 and      /work/SRC/openSUSE:Factory/.qt6-languageserver.new.1258 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "qt6-languageserver"

Fri Aug 21 16:50:50 2026 rev:33 rq:1372244 version:6.11.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/qt6-languageserver/qt6-languageserver.changes    
2026-05-28 17:25:34.180317693 +0200
+++ 
/work/SRC/openSUSE:Factory/.qt6-languageserver.new.1258/qt6-languageserver.changes
  2026-08-21 16:51:44.718608505 +0200
@@ -1,0 +2,6 @@
+Tue Aug 18 11:48:44 UTC 2026 - Christophe Marin <[email protected]>
+
+- Update to 6.11.2
+  https://www.qt.io/blog/qt-6.11.2-released
+
+-------------------------------------------------------------------

Old:
----
  qtlanguageserver-everywhere-src-6.11.1.tar.xz

New:
----
  qtlanguageserver-everywhere-src-6.11.2.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ qt6-languageserver.spec ++++++
--- /var/tmp/diff_new_pack.1yYozF/_old  2026-08-21 16:51:45.516636881 +0200
+++ /var/tmp/diff_new_pack.1yYozF/_new  2026-08-21 16:51:45.518636952 +0200
@@ -16,14 +16,14 @@
 #
 
 
-%define real_version 6.11.1
+%define real_version 6.11.2
 %define short_version 6.11
 %define short_name qtlanguageserver
 %define tar_name qtlanguageserver-everywhere-src
 %define tar_suffix %{nil}
 #
 Name:           qt6-languageserver
-Version:        6.11.1
+Version:        6.11.2
 Release:        0
 Summary:        Implementation of the Language Server Protocol
 License:        GPL-2.0-only OR LGPL-3.0-only OR GPL-3.0-only

++++++ qtlanguageserver-everywhere-src-6.11.1.tar.xz -> 
qtlanguageserver-everywhere-src-6.11.2.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qtlanguageserver-everywhere-src-6.11.1/.cmake.conf 
new/qtlanguageserver-everywhere-src-6.11.2/.cmake.conf
--- old/qtlanguageserver-everywhere-src-6.11.1/.cmake.conf      2026-05-07 
21:59:24.000000000 +0200
+++ new/qtlanguageserver-everywhere-src-6.11.2/.cmake.conf      2026-08-11 
19:38:05.000000000 +0200
@@ -1,4 +1,4 @@
-set(QT_REPO_MODULE_VERSION "6.11.1")
+set(QT_REPO_MODULE_VERSION "6.11.2")
 set(QT_REPO_MODULE_PRERELEASE_VERSION_SEGMENT "alpha1")
 set(QT_EXTRA_INTERNAL_TARGET_DEFINES
     "QT_NO_CONTEXTLESS_CONNECT=1"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/qtlanguageserver-everywhere-src-6.11.1/.tag 
new/qtlanguageserver-everywhere-src-6.11.2/.tag
--- old/qtlanguageserver-everywhere-src-6.11.1/.tag     2026-05-07 
21:59:24.000000000 +0200
+++ new/qtlanguageserver-everywhere-src-6.11.2/.tag     2026-08-11 
19:38:05.000000000 +0200
@@ -1 +1 @@
-7ef3bccd89cc163a664b46fe80a4bd56084b1983
+78cf6915d84657a719847235ab2433b5faf35bb5
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtlanguageserver-everywhere-src-6.11.1/dependencies.yaml 
new/qtlanguageserver-everywhere-src-6.11.2/dependencies.yaml
--- old/qtlanguageserver-everywhere-src-6.11.1/dependencies.yaml        
2026-05-07 21:59:24.000000000 +0200
+++ new/qtlanguageserver-everywhere-src-6.11.2/dependencies.yaml        
2026-08-11 19:38:05.000000000 +0200
@@ -1,4 +1,4 @@
 dependencies:
   ../qtbase:
-    ref: 59c81a3c2247b821b9b84b4eb8d939b77e07e276
+    ref: ef55f427f2c8b410d34f8a7681020a3000cf6866
     required: true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtlanguageserver-everywhere-src-6.11.1/src/jsonrpc/qhttpmessagestreamparser.cpp
 
new/qtlanguageserver-everywhere-src-6.11.2/src/jsonrpc/qhttpmessagestreamparser.cpp
--- 
old/qtlanguageserver-everywhere-src-6.11.1/src/jsonrpc/qhttpmessagestreamparser.cpp
 2026-05-07 21:59:24.000000000 +0200
+++ 
new/qtlanguageserver-everywhere-src-6.11.2/src/jsonrpc/qhttpmessagestreamparser.cpp
 2026-08-11 19:38:05.000000000 +0200
@@ -72,8 +72,8 @@
                 errorMessage(QtWarningMsg,
                              u"Unexpected space at start of headers, 
skipping"_s.arg(
                                      QString::fromUtf8(m_currentHeaderField)));
-                while (dataPos < data.size()) {
-                    char c = data.at(++dataPos);
+                while (++dataPos < data.size()) {
+                    char c = data.at(dataPos);
                     if (c != space && c != tab) {
                         advance();
                         m_state = State::InHeaderField;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtlanguageserver-everywhere-src-6.11.1/src/jsonrpc/qjsonrpcprotocol.cpp 
new/qtlanguageserver-everywhere-src-6.11.2/src/jsonrpc/qjsonrpcprotocol.cpp
--- old/qtlanguageserver-everywhere-src-6.11.1/src/jsonrpc/qjsonrpcprotocol.cpp 
2026-05-07 21:59:24.000000000 +0200
+++ new/qtlanguageserver-everywhere-src-6.11.2/src/jsonrpc/qjsonrpcprotocol.cpp 
2026-08-11 19:38:05.000000000 +0200
@@ -313,8 +313,8 @@
         handler->handleRequest(request, [this, id](const 
QJsonRpcProtocol::Response &response) {
             m_finished.append(createResponse(id, response));
             bool found = false;
-            for (QJsonValueRef entry : m_finished) {
-                if (entry.toObject()[u"id"] == id) {
+            for (QJsonValueConstRef entry : std::as_const(m_finished)) {
+                if (entry.toObject().value(u"id") == id) {
                     found = true;
                     break;
                 }
@@ -396,7 +396,8 @@
         && m_messagePreprocessor(message, error,
                                  [message, this](const 
QJsonRpcProtocol::Response &r) {
                                      
Q_ASSERT(message.object().contains(u"id"));
-                                     
this->sendMessage(createResponse(message.object()[u"id"], r));
+                                     this->sendMessage(
+                                             
createResponse(message.object().value(u"id"), r));
                                  })
                 != QJsonRpcProtocol::Processing::Continue) {
         return;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtlanguageserver-everywhere-src-6.11.1/src/jsonrpc/qjsontypedrpc.cpp 
new/qtlanguageserver-everywhere-src-6.11.2/src/jsonrpc/qjsontypedrpc.cpp
--- old/qtlanguageserver-everywhere-src-6.11.1/src/jsonrpc/qjsontypedrpc.cpp    
2026-05-07 21:59:24.000000000 +0200
+++ new/qtlanguageserver-everywhere-src-6.11.2/src/jsonrpc/qjsontypedrpc.cpp    
2026-08-11 19:38:05.000000000 +0200
@@ -28,9 +28,8 @@
 void TypedResponse::doOnCloseActions()
 {
     m_typedRpc->doOnCloseAction(m_status, m_id);
-    for (const auto &a : m_onCloseActions) {
+    for (const auto &a : std::as_const(m_onCloseActions))
         a(m_status, m_id, *m_typedRpc);
-    }
     m_onCloseActions.clear();
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtlanguageserver-everywhere-src-6.11.1/src/jsonrpc/qtypedjson.cpp 
new/qtlanguageserver-everywhere-src-6.11.2/src/jsonrpc/qtypedjson.cpp
--- old/qtlanguageserver-everywhere-src-6.11.1/src/jsonrpc/qtypedjson.cpp       
2026-05-07 21:59:24.000000000 +0200
+++ new/qtlanguageserver-everywhere-src-6.11.2/src/jsonrpc/qtypedjson.cpp       
2026-08-11 19:38:05.000000000 +0200
@@ -22,7 +22,7 @@
 
 Reader::~Reader()
 {
-    for (const QString &msg : m_p->errorMessages)
+    for (const QString &msg : std::as_const(m_p->errorMessages))
         qCWarning(jsonRpcLog) << msg;
     delete m_p;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtlanguageserver-everywhere-src-6.11.1/src/languageserver/qlanguageserverjsonrpctransport.cpp
 
new/qtlanguageserver-everywhere-src-6.11.2/src/languageserver/qlanguageserverjsonrpctransport.cpp
--- 
old/qtlanguageserver-everywhere-src-6.11.1/src/languageserver/qlanguageserverjsonrpctransport.cpp
   2026-05-07 21:59:24.000000000 +0200
+++ 
new/qtlanguageserver-everywhere-src-6.11.2/src/languageserver/qlanguageserverjsonrpctransport.cpp
   2026-08-11 19:38:05.000000000 +0200
@@ -67,8 +67,7 @@
             if (auto handler = diagnosticHandler()) {
                 handler(Warning,
                         QString::fromLatin1("Invalid %1: %2")
-                                .arg(QString::fromUtf8(fieldName))
-                                .arg(QString::fromUtf8(fieldValue)));
+                                .arg(QString::fromUtf8(fieldName), 
QString::fromUtf8(fieldValue)));
             }
         }
     } else if (auto handler = diagnosticHandler()) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtlanguageserver-everywhere-src-6.11.1/tests/auto/qjsonrpcprotocol/tst_qjsonrpcprotocol.cpp
 
new/qtlanguageserver-everywhere-src-6.11.2/tests/auto/qjsonrpcprotocol/tst_qjsonrpcprotocol.cpp
--- 
old/qtlanguageserver-everywhere-src-6.11.1/tests/auto/qjsonrpcprotocol/tst_qjsonrpcprotocol.cpp
     2026-05-07 21:59:24.000000000 +0200
+++ 
new/qtlanguageserver-everywhere-src-6.11.2/tests/auto/qjsonrpcprotocol/tst_qjsonrpcprotocol.cpp
     2026-08-11 19:38:05.000000000 +0200
@@ -98,6 +98,9 @@
     void testHttpMessagesSplits_data();
     void testHttpMessagesSplits();
 
+    void testHttpMessagesBrokenInputs_data();
+    void testHttpMessagesBrokenInputs();
+
     void badResponses();
 
 private:
@@ -609,6 +612,65 @@
     QVERIFY(parser.receiveEof());
 }
 
+void tst_QJsonRpcProtocol::testHttpMessagesBrokenInputs_data()
+{
+    QTest::addColumn<QByteArray>("input");
+    QTest::addColumn<bool>("shouldWarn");
+    // valid content-length header and valid JSON body
+    QTest::newRow("valid content-length header and valid JSON body")
+            << QByteArray("Content-Length: 15\r\n\r\n{\"some\":\"json\"}") << 
false;
+    // correct content-length header but invalid JSON body
+    QTest::newRow("correct content-length header but invalid JSON body")
+            << QByteArray("Content-Length: 11\r\n\r\n{\"foo\":bar}") << true;
+    // content-length header is less than the actual body length
+    // warning 1: broken json, warning 2: partial message at the end
+    QTest::newRow("content-length header is less than the actual body length")
+            << QByteArray("Content-Length: 3\r\n\r\n{\"foo\":bar}") << true;
+    // misc invalid content-length headers
+    QTest::newRow("invalid content-length non-numeric")
+            << QByteArray("Content-Length: abc\r\n\r\n{\"some\":\"json\"}") << 
true;
+    QTest::newRow("invalid content-length negative")
+            << QByteArray("Content-Length: -10\r\n\r\n{\"some\":\"json\"}") << 
true;
+    QTest::newRow("missing content-length header")
+            << QByteArray("Foo: bar\r\n\r\n{\"some\":\"json\"}") << true;
+    // fuzz test input from libFuzzer, shouldn't crash
+    /*
+    O-�-- :            n
+    Content-Length: 60
+
+    {"jsonrpc":  2.0", "method": "foo", ��"params
+    */
+    QByteArray fromFuzzer;
+    fromFuzzer.append("O-�-- :\t\tn\r\nContent-Length: 60\r\n\r\n{\"jsonrpc\": 
 2.0\", \"method\": "
+                      "\"foo\", ��\"params");
+    QTest::newRow("libFuzzer") << fromFuzzer << true;
+}
+
+void tst_QJsonRpcProtocol::testHttpMessagesBrokenInputs()
+{
+    QFETCH(QByteArray, input);
+    QFETCH(bool, shouldWarn);
+
+    int warnings = 0;
+    const auto headerHandler = [](const QByteArray &, const QByteArray &) { };
+    const auto diagnosticHandler = [&](QtMsgType error, QString msg) {
+        ++warnings;
+        QDebug(error) << "Message:" << msg;
+    };
+    const auto bodyHandler = [&](const QByteArray &body) {
+        QJsonParseError error = { 0, QJsonParseError::NoError };
+        const QJsonDocument doc = QJsonDocument::fromJson(body, &error);
+        if (error.error != QJsonParseError::NoError) {
+            diagnosticHandler(QtDebugMsg,
+                              QString("Errors in JSON parsing: 
%1").arg(QString::fromUtf8(body)));
+        }
+    };
+    QHttpMessageStreamParser parser(headerHandler, bodyHandler, 
diagnosticHandler);
+
+    parser.receiveData(input);
+    QCOMPARE(warnings > 0, shouldWarn);
+}
+
 void SumHandler::handleRequest(const QJsonRpcProtocol::Request &request,
                                const ResponseHandler &handler)
 {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtlanguageserver-everywhere-src-6.11.1/tests/libfuzzer/jsonrpc/CMakeLists.txt
 
new/qtlanguageserver-everywhere-src-6.11.2/tests/libfuzzer/jsonrpc/CMakeLists.txt
--- 
old/qtlanguageserver-everywhere-src-6.11.1/tests/libfuzzer/jsonrpc/CMakeLists.txt
   1970-01-01 01:00:00.000000000 +0100
+++ 
new/qtlanguageserver-everywhere-src-6.11.2/tests/libfuzzer/jsonrpc/CMakeLists.txt
   2026-08-11 19:38:05.000000000 +0200
@@ -0,0 +1,30 @@
+# Copyright (C) 2026 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
+cmake_minimum_required(VERSION 3.16)
+project(next LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+
+set(CMAKE_AUTOMOC ON)
+set(CMAKE_AUTORCC ON)
+set(CMAKE_AUTOUIC ON)
+
+find_package(Qt6 REQUIRED COMPONENTS JsonRpcPrivate)
+
+qt_add_executable(next
+    main.cpp
+)
+
+target_link_libraries(next PUBLIC
+    Qt::JsonRpcPrivate
+)
+if(DEFINED ENV{LIB_FUZZING_ENGINE})
+    target_link_libraries(next PRIVATE
+        $ENV{LIB_FUZZING_ENGINE}
+    )
+else()
+    target_link_libraries(next PRIVATE
+        -fsanitize=fuzzer
+    )
+endif()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/qtlanguageserver-everywhere-src-6.11.1/tests/libfuzzer/jsonrpc/main.cpp 
new/qtlanguageserver-everywhere-src-6.11.2/tests/libfuzzer/jsonrpc/main.cpp
--- old/qtlanguageserver-everywhere-src-6.11.1/tests/libfuzzer/jsonrpc/main.cpp 
1970-01-01 01:00:00.000000000 +0100
+++ new/qtlanguageserver-everywhere-src-6.11.2/tests/libfuzzer/jsonrpc/main.cpp 
2026-08-11 19:38:05.000000000 +0200
@@ -0,0 +1,29 @@
+// Copyright (C) 2020 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
+
+#include <QtJsonRpc/private/qjsonrpcprotocol_p.h>
+#include <QtJsonRpc/private/qhttpmessagestreamparser_p.h>
+
+extern "C" int LLVMFuzzerTestOneInput(const char *Data, size_t Size)
+{
+    QByteArray content = QByteArray::fromRawData(Data, Size);
+    int warnings = 0;
+    const auto headerHandler = [](const QByteArray &, const QByteArray &) { };
+    const auto diagnosticHandler = [&](QtMsgType error, QString msg) {
+        ++warnings;
+        qDebug() << "Warning Type:" << error << "-- Message:" << msg;
+    };
+    const auto bodyHandler = [&](const QByteArray &body) {
+        QJsonParseError error = { 0, QJsonParseError::NoError };
+        const QJsonDocument doc = QJsonDocument::fromJson(body, &error);
+        if (error.error != QJsonParseError::NoError) {
+            diagnosticHandler(QtDebugMsg, QString("Errors in JSON parsing: 
%1").arg(QString::fromUtf8(body)));
+        }
+    };
+    QHttpMessageStreamParser parser(
+            headerHandler, bodyHandler, diagnosticHandler);
+
+    // 
+    parser.receiveData(content);
+    return 0;
+}

Reply via email to