Review Request: Fix sanitization of dbus path in KMainWindow

Chani chanika at gmail.com
Tue Aug 11 17:29:32 BST 2009


On August 11, 2009 05:55:54 Thiago Macieira wrote:
> Em Terça-feira 11 Agosto 2009, às 13:56:01, Tom Albers escreveu:
> > > On 2009-08-11 05:23:13, Chani wrote:
> > > > how will this affect applications that do have a - in their name? and
> > > > applications that use the dbus interface of those apps?
> > >
> > > thomasl wrote:
> > >     As a dbus path attempt of "/some-app/MainWindow_1" is catched by an
> > > assertion in Qt (for being invalid) there's never been a chance that
> > > you used it this way
> > >
> > >     If we'd however catch the appName in KAboutData to align the dbus
> > > path with e.g. qApp->applicationName(), this would -likely- affect at
> > > least the KConfig rc path and possibly the way it registers with
> > > KGlobalAction :-(
> > >
> > >     (if anyone wonders, i had of course a much cooler "." in my failing
> > > app ;-)
> > >
> > >     As the limitiation of the appName would be artificial, one could
> > > also choose to change the dbus path system of KMainWindow to e.g.
> > > "/MainWindows/MainWindow_1", "/MainWindows/MainWindow_2", etc. - but
> > > that would break everything here :-(
> >
> > Concrete question: will:
> >
> >  QDBusInterface dbus( "org.kde.plasma-desktop", "/App" );
> >
> > change into
> >
> >  QDBusInterface dbus( "org.kde.plasmadesktop", "/App" );
> >
> > ?
> 
> No.
> 
> You're mixing interfaces and services. You can have dashes in service
>  names, so org.kde.plasma-desktop is perfectly valid:
> 
> $ qdbus org.kde.plasma-desktop
> /
> /App
> /KBookmarkManager
> /KBookmarkManager/kfilePlaces
> /KIO
> /KIO/Scheduler
> /MainApplication
> /kickoff
> /kickoff/RecentAppDoc
> 
> However, you cannot have dashes in interface names:
> 
> $ qdbus org.kde.plasma-desktop /MainApplication
> Invalid D-BUS interface name 'org.kde.plasma-desktop.PlasmaApp' found while
> parsing introspection
> 
> You cannot construct a QDBusInterface object with that interface name. Even
>  if you could, the interface cannot be called because the bus will reject
>  such messages. If you try, you'll get disconnected.
> 
> That interface name is auto-created by QtDBus itself and should be fixed
>  there.
> 

oh btw, I've been wondering about this for a while... nobody else seems to 
have a problem with "kquitapp plasma-desktop", but for the last few months 
it's only worked for me on every third try.
literally, every third one works. it's *weird*. I've always wondered if it had 
something to do with the dash.

-- 
This message brought to you by eevil bananas and the number 3.
www.chani3.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part.
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20090811/8708077e/attachment.sig>


More information about the kde-core-devel mailing list