==2180==ERROR: AddressSanitizer: heap-use-after-free on address 0x60c0000031d0 at pc 0x7f03a6999618 bp 0x7ffc673c3f30 sp 0x7ffc673c36e0
READ of size 96 at 0x60c0000031d0 thread T0
#0 0x7f03a6999617 (/usr/lib64/libasan.so.5+0x67617)
#1 0x7f03a5c374b3 in std::char_traits<char>::length(char const*) /usr/include/c++/9/bits/char_traits.h:335
#2 0x7f03a5c38718 in long long QtPrivate::lengthHelperPointer<char>(char const*) (/home/qt/work/install/lib/libQt6Protobuf.so.6+0x39718)
#3 0x7f03a5c38767 in QByteArrayView::QByteArrayView<char const*, true>(char const* const&) /home/qt/work/install/include/QtCore/qbytearrayview.h:152
#4 0x7f03a5d43ba2 in QProtobufJsonSerializer::deserializeObject(QProtobufMessage*, QtProtobufPrivate::QProtobufPropertyOrdering const&, QtProtobufPrivate::QProtobufSelfcheckIterator&) const /home/qt/work/qt/qtgrpc/src/protobuf/qprotobufjsonserializer.cpp:629
#5 0x7f03a5d44336 in QProtobufJsonSerializer::deserializeListObject(QProtobufMessage*, QtProtobufPrivate::QProtobufPropertyOrdering const&, QtProtobufPrivate::QProtobufSelfcheckIterator&) const /home/qt/work/qt/qtgrpc/src/protobuf/qprotobufjsonserializer.cpp:653
#6 0x7f03a6183b26 in void QtProtobufPrivate::deserializeList<qtprotobufnamespace::tests::ComplexMessage, 0>(QProtobufBaseSerializer const*, QtProtobufPrivate::QProtobufSelfcheckIterator&, QVariant&) /home/qt/work/install/include/QtProtobuf/qprotobufbaseserializer.h:221
#7 0x7f03a5d4ef21 in QProtobufJsonSerializerPrivate::deserializeValue(QMetaType const&, QtProtobufPrivate::QProtobufSelfcheckIterator&, QJsonValue const&, bool&) /home/qt/work/qt/qtgrpc/src/protobuf/qprotobufjsonserializer.cpp:453
#8 0x7f03a5d50b69 in QProtobufJsonSerializerPrivate::deserializeObject(QProtobufMessage*, QtProtobufPrivate::QProtobufPropertyOrdering const&, QByteArrayView) /home/qt/work/qt/qtgrpc/src/protobuf/qprotobufjsonserializer.cpp:514
#9 0x7f03a5d43300 in QProtobufJsonSerializer::deserializeMessage(QProtobufMessage*, QtProtobufPrivate::QProtobufPropertyOrdering const&, QByteArrayView) const /home/qt/work/qt/qtgrpc/src/protobuf/qprotobufjsonserializer.cpp:592
#10 0x7f03a5c39a6b in QAbstractProtobufSerializer::doDeserialize(QProtobufMessage*, QtProtobufPrivate::QProtobufPropertyOrdering const&, QByteArrayView) const /home/qt/work/qt/qtgrpc/src/protobuf/qabstractprotobufserializer.cpp:91
#11 0x55660bf6b89a in bool QAbstractProtobufSerializer::deserialize<qtprotobufnamespace::tests::RepeatedComplexMessage>(qtprotobufnamespace::tests::RepeatedComplexMessage*, QByteArrayView) const /home/qt/work/install/include/QtProtobuf/qabstractprotobufserializer.h:45
#12 0x55660bf68edf in qtprotobufnamespace::tests::RepeatedComplexMessage::deserialize(QAbstractProtobufSerializer*, QByteArrayView) /home/qt/work/qt/qtgrpc_standalone_tests/tests/auto/protobuf/jsontypes/qt_protobuf_generated/repeatedmessages.qpb.h:273
#13 0x55660bf6489a in QtProtobufRepeatedTypesJsonDeserializationTest::RepeatedComplexMessageTest() /home/qt/work/qt/qtgrpc/tests/auto/protobuf/jsontypes/tst_protobuf_deserialization_json_repeatedtypes.cpp:212
#14 0x55660bf66a0e in QtProtobufRepeatedTypesJsonDeserializationTest::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) /home/qt/work/qt/qtgrpc_standalone_tests/tests/auto/protobuf/jsontypes/tst_protobuf_deserialization_json_repeatedtypes_autogen/include/tst_protobuf_deserialization_json_repeatedtypes.moc:183
#15 0x7f03a4b84e1b in QMetaMethodInvoker::invokeImpl(QMetaMethod, void*, Qt::ConnectionType, long long, void const* const*, char const* const*, QtPrivate::QMetaTypeInterface const* const*) /home/qt/work/qt/qtbase/src/corelib/kernel/qmetaobject.cpp:2757
#16 0x7f03a4b82aa0 in QMetaMethod::invokeImpl(QMetaMethod, void*, Qt::ConnectionType, long long, void const* const*, char const* const*, QtPrivate::QMetaTypeInterface const* const*) /home/qt/work/qt/qtbase/src/corelib/kernel/qmetaobject.cpp:2596
#17 0x7f03a62efea0 in std::enable_if<!std::disjunction<>::value, bool>::type QMetaMethod::invoke<void>(QObject*, Qt::ConnectionType, QTemplatedMetaMethodReturnArgument<void>) const /home/qt/work/qt/qtbase/src/corelib/kernel/qmetaobject.h:148
#18 0x7f03a62eae6d in std::enable_if<!std::disjunction<>::value, bool>::type QMetaMethod::invoke<>(QObject*, Qt::ConnectionType) const /home/qt/work/qt/qtbase/src/corelib/kernel/qmetaobject.h:160
#19 0x7f03a62c8799 in QTest::TestMethods::invokeTestOnData(int) const /home/qt/work/qt/qtbase/src/testlib/qtestcase.cpp:1166
#20 0x7f03a62ca557 in QTest::TestMethods::invokeTest(int, QLatin1String, QTest::WatchDog*) const /home/qt/work/qt/qtbase/src/testlib/qtestcase.cpp:1469
#21 0x7f03a62cd580 in QTest::TestMethods::invokeTests(QObject*) const /home/qt/work/qt/qtbase/src/testlib/qtestcase.cpp:1808
#22 0x7f03a62d006b in QTest::qRun() /home/qt/work/qt/qtbase/src/testlib/qtestcase.cpp:2450
#23 0x7f03a62ced6d in QTest::qExec(QObject*, int, char**) /home/qt/work/qt/qtbase/src/testlib/qtestcase.cpp:2328
#24 0x55660bf667d1 in main /home/qt/work/qt/qtgrpc/tests/auto/protobuf/jsontypes/tst_protobuf_deserialization_json_repeatedtypes.cpp:244
#25 0x7f03a3d4d24c in __libc_start_main (/lib64/libc.so.6+0x3524c)
#26 0x55660bf5b609 in _start ../sysdeps/x86_64/start.S:120
0x60c0000031d0 is located 16 bytes inside of 128-byte region [0x60c0000031c0,0x60c000003240)
freed by thread T0 here:
#0 0x7f03a6a3ba97 in free (/usr/lib64/libasan.so.5+0x109a97)
#1 0x7f03a5c386c2 in QArrayDataPointer<char>::~QArrayDataPointer() /home/qt/work/install/include/QtCore/qarraydatapointer.h:110
#2 0x7f03a5c37eb3 in QByteArray::~QByteArray() /home/qt/work/install/include/QtCore/qbytearray.h:580
#3 0x7f03a5d44265 in QProtobufJsonSerializer::deserializeListObject(QProtobufMessage*, QtProtobufPrivate::QProtobufPropertyOrdering const&, QtProtobufPrivate::QProtobufSelfcheckIterator&) const /home/qt/work/qt/qtgrpc/src/protobuf/qprotobufjsonserializer.cpp:652
#4 0x7f03a6183b26 in void QtProtobufPrivate::deserializeList<qtprotobufnamespace::tests::ComplexMessage, 0>(QProtobufBaseSerializer const*, QtProtobufPrivate::QProtobufSelfcheckIterator&, QVariant&) /home/qt/work/install/include/QtProtobuf/qprotobufbaseserializer.h:221
#5 0x7f03a5d4ef21 in QProtobufJsonSerializerPrivate::deserializeValue(QMetaType const&, QtProtobufPrivate::QProtobufSelfcheckIterator&, QJsonValue const&, bool&) /home/qt/work/qt/qtgrpc/src/protobuf/qprotobufjsonserializer.cpp:453
#6 0x7f03a5d50b69 in QProtobufJsonSerializerPrivate::deserializeObject(QProtobufMessage*, QtProtobufPrivate::QProtobufPropertyOrdering const&, QByteArrayView) /home/qt/work/qt/qtgrpc/src/protobuf/qprotobufjsonserializer.cpp:514
#7 0x7f03a5d43300 in QProtobufJsonSerializer::deserializeMessage(QProtobufMessage*, QtProtobufPrivate::QProtobufPropertyOrdering const&, QByteArrayView) const /home/qt/work/qt/qtgrpc/src/protobuf/qprotobufjsonserializer.cpp:592
#8 0x7f03a5c39a6b in QAbstractProtobufSerializer::doDeserialize(QProtobufMessage*, QtProtobufPrivate::QProtobufPropertyOrdering const&, QByteArrayView) const /home/qt/work/qt/qtgrpc/src/protobuf/qabstractprotobufserializer.cpp:91
#9 0x55660bf6b89a in bool QAbstractProtobufSerializer::deserialize<qtprotobufnamespace::tests::RepeatedComplexMessage>(qtprotobufnamespace::tests::RepeatedComplexMessage*, QByteArrayView) const /home/qt/work/install/include/QtProtobuf/qabstractprotobufserializer.h:45
#10 0x55660bf68edf in qtprotobufnamespace::tests::RepeatedComplexMessage::deserialize(QAbstractProtobufSerializer*, QByteArrayView) /home/qt/work/qt/qtgrpc_standalone_tests/tests/auto/protobuf/jsontypes/qt_protobuf_generated/repeatedmessages.qpb.h:273
#11 0x55660bf6489a in QtProtobufRepeatedTypesJsonDeserializationTest::RepeatedComplexMessageTest() /home/qt/work/qt/qtgrpc/tests/auto/protobuf/jsontypes/tst_protobuf_deserialization_json_repeatedtypes.cpp:212
#12 0x55660bf66a0e in QtProtobufRepeatedTypesJsonDeserializationTest::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) /home/qt/work/qt/qtgrpc_standalone_tests/tests/auto/protobuf/jsontypes/tst_protobuf_deserialization_json_repeatedtypes_autogen/include/tst_protobuf_deserialization_json_repeatedtypes.moc:183
#13 0x7f03a4b84e1b in QMetaMethodInvoker::invokeImpl(QMetaMethod, void*, Qt::ConnectionType, long long, void const* const*, char const* const*, QtPrivate::QMetaTypeInterface const* const*) /home/qt/work/qt/qtbase/src/corelib/kernel/qmetaobject.cpp:2757
#14 0x7f03a4b82aa0 in QMetaMethod::invokeImpl(QMetaMethod, void*, Qt::ConnectionType, long long, void const* const*, char const* const*, QtPrivate::QMetaTypeInterface const* const*) /home/qt/work/qt/qtbase/src/corelib/kernel/qmetaobject.cpp:2596
#15 0x7f03a62efea0 in std::enable_if<!std::disjunction<>::value, bool>::type QMetaMethod::invoke<void>(QObject*, Qt::ConnectionType, QTemplatedMetaMethodReturnArgument<void>) const /home/qt/work/qt/qtbase/src/corelib/kernel/qmetaobject.h:148
#16 0x7f03a62eae6d in std::enable_if<!std::disjunction<>::value, bool>::type QMetaMethod::invoke<>(QObject*, Qt::ConnectionType) const /home/qt/work/qt/qtbase/src/corelib/kernel/qmetaobject.h:160
#17 0x7f03a62c8799 in QTest::TestMethods::invokeTestOnData(int) const /home/qt/work/qt/qtbase/src/testlib/qtestcase.cpp:1166
#18 0x7f03a62ca557 in QTest::TestMethods::invokeTest(int, QLatin1String, QTest::WatchDog*) const /home/qt/work/qt/qtbase/src/testlib/qtestcase.cpp:1469
#19 0x7f03a62cd580 in QTest::TestMethods::invokeTests(QObject*) const /home/qt/work/qt/qtbase/src/testlib/qtestcase.cpp:1808
#20 0x7f03a62d006b in QTest::qRun() /home/qt/work/qt/qtbase/src/testlib/qtestcase.cpp:2450
#21 0x7f03a62ced6d in QTest::qExec(QObject*, int, char**) /home/qt/work/qt/qtbase/src/testlib/qtestcase.cpp:2328
#22 0x55660bf667d1 in main /home/qt/work/qt/qtgrpc/tests/auto/protobuf/jsontypes/tst_protobuf_deserialization_json_repeatedtypes.cpp:244
#23 0x7f03a3d4d24c in __libc_start_main (/lib64/libc.so.6+0x3524c)
previously allocated by thread T0 here:
#0 0x7f03a6a3be48 in __interceptor_malloc (/usr/lib64/libasan.so.5+0x109e48)
#1 0x7f03a4f53edd in allocateData /home/qt/work/qt/qtbase/src/corelib/tools/qarraydata.cpp:139
#2 0x7f03a4f54172 in allocateHelper /home/qt/work/qt/qtbase/src/corelib/tools/qarraydata.cpp:181
#3 0x7f03a4f5445e in QArrayData::allocate1(QArrayData**, long long, QArrayData::AllocationOption) /home/qt/work/qt/qtbase/src/corelib/tools/qarraydata.cpp:211
#4 0x7f03a4de4bf9 in QTypedArrayData<char>::allocate(long long, QArrayData::AllocationOption) /home/qt/work/qt/qtbase/src/corelib/tools/qarraydata.h:135
#5 0x7f03a4de1e54 in QArrayDataPointer<char>::allocateGrow(QArrayDataPointer<char> const&, long long, QArrayData::GrowthPosition) (/home/qt/work/install/lib/libQt6Core.so.6+0x720e54)
#6 0x7f03a4de1147 in QArrayDataPointer<char>::reallocateAndGrow(QArrayData::GrowthPosition, long long, QArrayDataPointer<char>*) (/home/qt/work/install/lib/libQt6Core.so.6+0x720147)
#7 0x7f03a4de2523 in QArrayDataPointer<char>::detachAndGrow(QArrayData::GrowthPosition, long long, char const**, QArrayDataPointer<char>*) (/home/qt/work/install/lib/libQt6Core.so.6+0x721523)
#8 0x7f03a4dd10b6 in QByteArray::insert(long long, QByteArrayView) /home/qt/work/qt/qtbase/src/corelib/text/qbytearray.cpp:2209
#9 0x7f03a4903a22 in QByteArray::append(QByteArrayView) /home/qt/work/qt/qtbase/src/corelib/text/qbytearray.h:283
#10 0x7f03a4dd0962 in QByteArray::append(QByteArray const&) /home/qt/work/qt/qtbase/src/corelib/text/qbytearray.cpp:2047
#11 0x7f03a4b8e844 in QByteArray::operator+=(QByteArray const&) /home/qt/work/qt/qtbase/src/corelib/text/qbytearray.h:338
#12 0x7f03a4daeef8 in objectContentToJson /home/qt/work/qt/qtbase/src/corelib/serialization/qjsonwriter.cpp:177
#13 0x7f03a4dae421 in valueToJson /home/qt/work/qt/qtbase/src/corelib/serialization/qjsonwriter.cpp:131
#14 0x7f03a4daf09c in objectContentToJson /home/qt/work/qt/qtbase/src/corelib/serialization/qjsonwriter.cpp:179
#15 0x7f03a4daf52c in QJsonPrivate::Writer::objectToJson(QCborContainerPrivate const*, QByteArray&, int, bool) /home/qt/work/qt/qtbase/src/corelib/serialization/qjsonwriter.cpp:195
#16 0x7f03a4d84c9a in QJsonDocument::toJson(QJsonDocument::JsonFormat) const /home/qt/work/qt/qtbase/src/corelib/serialization/qjsondocument.cpp:266
#17 0x7f03a5d44187 in QProtobufJsonSerializer::deserializeListObject(QProtobufMessage*, QtProtobufPrivate::QProtobufPropertyOrdering const&, QtProtobufPrivate::QProtobufSelfcheckIterator&) const /home/qt/work/qt/qtgrpc/src/protobuf/qprotobufjsonserializer.cpp:652
#18 0x7f03a6183b26 in void QtProtobufPrivate::deserializeList<qtprotobufnamespace::tests::ComplexMessage, 0>(QProtobufBaseSerializer const*, QtProtobufPrivate::QProtobufSelfcheckIterator&, QVariant&) /home/qt/work/install/include/QtProtobuf/qprotobufbaseserializer.h:221
#19 0x7f03a5d4ef21 in QProtobufJsonSerializerPrivate::deserializeValue(QMetaType const&, QtProtobufPrivate::QProtobufSelfcheckIterator&, QJsonValue const&, bool&) /home/qt/work/qt/qtgrpc/src/protobuf/qprotobufjsonserializer.cpp:453
#20 0x7f03a5d50b69 in QProtobufJsonSerializerPrivate::deserializeObject(QProtobufMessage*, QtProtobufPrivate::QProtobufPropertyOrdering const&, QByteArrayView) /home/qt/work/qt/qtgrpc/src/protobuf/qprotobufjsonserializer.cpp:514
#21 0x7f03a5d43300 in QProtobufJsonSerializer::deserializeMessage(QProtobufMessage*, QtProtobufPrivate::QProtobufPropertyOrdering const&, QByteArrayView) const /home/qt/work/qt/qtgrpc/src/protobuf/qprotobufjsonserializer.cpp:592
#22 0x7f03a5c39a6b in QAbstractProtobufSerializer::doDeserialize(QProtobufMessage*, QtProtobufPrivate::QProtobufPropertyOrdering const&, QByteArrayView) const /home/qt/work/qt/qtgrpc/src/protobuf/qabstractprotobufserializer.cpp:91
#23 0x55660bf6b89a in bool QAbstractProtobufSerializer::deserialize<qtprotobufnamespace::tests::RepeatedComplexMessage>(qtprotobufnamespace::tests::RepeatedComplexMessage*, QByteArrayView) const /home/qt/work/install/include/QtProtobuf/qabstractprotobufserializer.h:45
#24 0x55660bf68edf in qtprotobufnamespace::tests::RepeatedComplexMessage::deserialize(QAbstractProtobufSerializer*, QByteArrayView) /home/qt/work/qt/qtgrpc_standalone_tests/tests/auto/protobuf/jsontypes/qt_protobuf_generated/repeatedmessages.qpb.h:273
#25 0x55660bf6489a in QtProtobufRepeatedTypesJsonDeserializationTest::RepeatedComplexMessageTest() /home/qt/work/qt/qtgrpc/tests/auto/protobuf/jsontypes/tst_protobuf_deserialization_json_repeatedtypes.cpp:212
#26 0x55660bf66a0e in QtProtobufRepeatedTypesJsonDeserializationTest::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) /home/qt/work/qt/qtgrpc_standalone_tests/tests/auto/protobuf/jsontypes/tst_protobuf_deserialization_json_repeatedtypes_autogen/include/tst_protobuf_deserialization_json_repeatedtypes.moc:183
#27 0x7f03a4b84e1b in QMetaMethodInvoker::invokeImpl(QMetaMethod, void*, Qt::ConnectionType, long long, void const* const*, char const* const*, QtPrivate::QMetaTypeInterface const* const*) /home/qt/work/qt/qtbase/src/corelib/kernel/qmetaobject.cpp:2757
#28 0x7f03a4b82aa0 in QMetaMethod::invokeImpl(QMetaMethod, void*, Qt::ConnectionType, long long, void const* const*, char const* const*, QtPrivate::QMetaTypeInterface const* const*) /home/qt/work/qt/qtbase/src/corelib/kernel/qmetaobject.cpp:2596
#29 0x7f03a62efea0 in std::enable_if<!std::disjunction<>::value, bool>::type QMetaMethod::invoke<void>(QObject*, Qt::ConnectionType, QTemplatedMetaMethodReturnArgument<void>) const /home/qt/work/qt/qtbase/src/corelib/kernel/qmetaobject.h:148
#30 0x7f03a62eae6d in std::enable_if<!std::disjunction<>::value, bool>::type QMetaMethod::invoke<>(QObject*, Qt::ConnectionType) const /home/qt/work/qt/qtbase/src/corelib/kernel/qmetaobject.h:160
#31 0x7f03a62c8799 in QTest::TestMethods::invokeTestOnData(int) const /home/qt/work/qt/qtbase/src/testlib/qtestcase.cpp:1166
#32 0x7f03a62ca557 in QTest::TestMethods::invokeTest(int, QLatin1String, QTest::WatchDog*) const /home/qt/work/qt/qtbase/src/testlib/qtestcase.cpp:1469
#33 0x7f03a62cd580 in QTest::TestMethods::invokeTests(QObject*) const /home/qt/work/qt/qtbase/src/testlib/qtestcase.cpp:1808
#34 0x7f03a62d006b in QTest::qRun() /home/qt/work/qt/qtbase/src/testlib/qtestcase.cpp:2450
#35 0x7f03a62ced6d in QTest::qExec(QObject*, int, char**) /home/qt/work/qt/qtbase/src/testlib/qtestcase.cpp:2328
#36 0x55660bf667d1 in main /home/qt/work/qt/qtgrpc/tests/auto/protobuf/jsontypes/tst_protobuf_deserialization_json_repeatedtypes.cpp:244
#37 0x7f03a3d4d24c in __libc_start_main (/lib64/libc.so.6+0x3524c)
SUMMARY: AddressSanitizer: heap-use-after-free (/usr/lib64/libasan.so.5+0x67617)
Shadow bytes around the buggy address:
0x0c187fff85e0: fd fd fd fd fd fd fd fd fa fa fa fa fa fa fa fa
0x0c187fff85f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0c187fff8600: fa fa fa fa fa fa fa fa 00 00 00 00 00 00 00 00
0x0c187fff8610: 00 00 00 00 00 00 00 00 fa fa fa fa fa fa fa fa
0x0c187fff8620: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
=>0x0c187fff8630: fa fa fa fa fa fa fa fa fd fd[fd]fd fd fd fd fd
0x0c187fff8640: fd fd fd fd fd fd fd fd fa fa fa fa fa fa fa fa
0x0c187fff8650: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c187fff8660: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c187fff8670: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c187fff8680: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
Shadow byte legend (one shadow byte represents 8 application bytes):
Addressable: 00
Partially addressable: 01 02 03 04 05 06 07
Heap left redzone: fa
Freed heap region: fd
Stack left redzone: f1
Stack mid redzone: f2
Stack right redzone: f3
Stack after return: f5
Stack use after scope: f8
Global redzone: f9
Global init order: f6
Poisoned by user: f7
Container overflow: fc
Array cookie: ac
Intra object redzone: bb
ASan internal: fe
Left alloca redzone: ca
Right alloca redzone: cb
Shadow gap: cc