Details
Description
QDBusSignature seems to consider an empty signature to be invalid, even though this is allowed by the DBus specification (a signature is defined as "Zero or more single complete types", with zero types yielding an empty signature).
This code will print a warning (QDBusSignature: invalid signature "") and then crash with a segmentation fault:
#include <QtDBus/QDBusArgument> #include <QtDBus/QDBusSignature> int main() { QDBusSignature value(""); QDBusArgument arg; arg << value; auto variant = QDBusVariant(QVariant::fromValue(arg)); QDBusArgument arg2; arg2 << variant; }
Attachments
For Gerrit Dashboard: QTBUG-124919 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
558582,2 | QDBusSignature: accept empty strings as valid | dev | qt/qtbase | Status: MERGED | +2 | 0 |
560674,2 | QDBusSignature: accept empty strings as valid | 6.7 | qt/qtbase | Status: MERGED | +2 | 0 |
560682,2 | QDBusSignature: accept empty strings as valid | tqtc/lts-6.5 | qt/tqtc-qtbase | Status: MERGED | +2 | 0 |
573418,2 | QDBusSignature: fix default ctor to not allocate memory | dev | qt/qtbase | Status: MERGED | +2 | 0 |
574422,2 | QDBusSignature: fix default ctor to not allocate memory | 6.8 | qt/qtbase | Status: MERGED | +2 | 0 |
574440,2 | QDBusSignature: fix default ctor to not allocate memory | 6.7 | qt/qtbase | Status: MERGED | +2 | 0 |
576082,2 | QDBusSignature: fix default ctor to not allocate memory | tqtc/lts-6.5 | qt/tqtc-qtbase | Status: MERGED | +2 | 0 |