diff options
author | Thiago Macieira <thiago.macieira@intel.com> | 2024-04-30 17:59:51 -0700 |
---|---|---|
committer | Thiago Macieira <thiago.macieira@intel.com> | 2024-05-10 13:17:20 -0700 |
commit | ed6d1fa71a79a70b7e6a20fbbc737ed9f6c287b1 (patch) | |
tree | b63cf0ef32bdbfd4193c9ad66051ec88033822c8 /src/dbus/qdbusutil.cpp | |
parent | e3f520e621a9ea631d8a1d2f9bfc7a5f20dc698a (diff) |
QDBusSignature: accept empty strings as valid
QDBusSignature holds a D-Bus value of type SIGNATURE, which is zero or
more signatures, not one or more. This changes the default constructor
to create a valid signature, which we denote by not being a null
QString. That means we need to use something other than the default
constructor in our tests for attempting to pass invalid signatures.
[ChangeLog][QtDBus][QDBusSignature] Fixed a bug that caused the class
not to accept an empty string as a valid D-Bus SIGNATURE value.
Fixes: QTBUG-124919
Pick-to: 6.5 6.7
Change-Id: I262c3499666e4f4fbcfbfffd17cb3793dcf2eae3
Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io>
Diffstat (limited to 'src/dbus/qdbusutil.cpp')
-rw-r--r-- | src/dbus/qdbusutil.cpp | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/dbus/qdbusutil.cpp b/src/dbus/qdbusutil.cpp index 827418c487..78338aa054 100644 --- a/src/dbus/qdbusutil.cpp +++ b/src/dbus/qdbusutil.cpp @@ -512,14 +512,14 @@ namespace QDBusUtil bool isValidSignature(const QString &signature) { QByteArray ba = signature.toLatin1(); - const char *data = ba.constData(); - while (true) { + const char *data = ba.constBegin(); + const char *end = ba.constEnd(); + while (data != end) { data = validateSingleType(data); if (!data) return false; - if (*data == '\0') - return true; } + return true; } /*! |