KMainWindow/KAboutData allows invalid names (was: QDBusConnection::registerObject: "Invalid object path given" - help?)

Matthew Woehlke mw_triad at users.sourceforge.net
Mon Aug 10 21:08:02 BST 2009


Thomas Lübking wrote:
> Am Monday 10 August 2009 schrieb Matthew Woehlke:
>> So... what? I can't use '-' in the name of a program? Or what do I need
>> to change so that I can use '-' everywhere *except* the dbus path?
> 
> actually it appears that kmainwindow.cpp #367ff should handle that for you
> maybe QChar::isLetterOrNumber() interprets "-" as number
> -> should be:
> if (!(pathname[i].isLetter() || pathname[i].isDigit())

Yup, that looks like a bug. Want to fix it, or shall I?

However, it's not the problem I am having, though you pointed me in the 
right direction. Apparently KAboutData::appName must be a valid 
identifier (regex "([:letter:]|[:digit:]|_)+"). This is neither 
documented (not in KAboutData, anyway) nor enforced (until it hits the 
assert registering with dbus), nor is there sanitizing being done on it 
in KAboutData, unlike KMainWindow.

Is the above restriction supposed to exist? If not, KMainWindow needs to 
sanitize also the appName when building the dbus path. Else IMO the API 
doc for KAboutName should at least mention this restriction, if not 
enforce it in at least the KApplication ctor, if not KAboutData (or both).

I guess appName never shows up anywhere visible to the user?

-- 
Matthew
Please do not quote my e-mail address unobfuscated in message bodies.
-- 
Never give up on learning

 
>> Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<


More information about the kde-core-devel mailing list