> On Juli 30, 2014, 2:29 nachm., Luca Beltrame wrote:
> > My question is, is KAuth being constructed with a default string ("") 
> > useful to anyone? IMO the issue, if any, it's there, and this looks like a 
> > workaround. (But I claim no expertise on the code, so feel free to flame me 
> > :P)

>From what I understand: since kauth supports multiple backends assuming that 
>an empty string necessarily represents an invalid action may well be wrong, 
>the apidox at the very least do not say anything about this. It does however 
>constitute an invalid action for polkit-qt, so there is a problem in polkit's 
>authority class in that it either should reject operations on an empty action 
>id preventing obvious errors or (somewhat more importantly I guess) recover 
>from having used an invalid action id previously. At a polkit-qt level what 
>happens is that the action results in a (IIRC) instance error which will make 
>all further requests be discarded on account of the Authority having the error 
>flag set, from that point on it does not automatically recover from. So to fix 
>this particular polkit-qt specific issue I can actually imagine two ways this 
>should work a) kauth should use clearError() before trying to do anything b) 
>polkit-qt clearing the error when a new action(id) is request
 ed. I totally do not feel comfortable saying which one it should be but from a 
convenience POV latter certainly seems best, having to clear error flags from 
outside the library is not a case I feel is often present in Qt-based libraries.

Regardless of all that, Auth(0) with 0 being implicitly cast to QString causing 
the Auth(QString&) ctor to be used certainly is not the intended initialization 
in kcmodule. So it happens to be a workaround for the Authority encountering an 
error and then refusing to do things until someone clears the error, it also 
happens to be a fix for using a wrong ctor and weirdly implict casting QString 
though ;)


- Harald


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/119540/#review63509
-----------------------------------------------------------


On Juli 30, 2014, 12:32 vorm., Harald Sitter wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/119540/
> -----------------------------------------------------------
> 
> (Updated Juli 30, 2014, 12:32 vorm.)
> 
> 
> Review request for KDE Frameworks, Hrvoje Senjan and Martin Bříza.
> 
> 
> Repository: kconfigwidgets
> 
> 
> Description
> -------
> 
> KAuthAction(0) actually calls the QString constructor which will dispatch
> bogus polkit auth checks, polkitqt and polkitd are not terribly happy about
> those and subsequently don't want to talk to the KCM anymore, even if it
> manages to create a proper Action
> 
> creating a null Action rather than accidentally triggering the QString
> ctor ensures that we only do polkit interaction with reasonable actionids
> making sure that authentication works as expected
> 
> 
> Diffs
> -----
> 
>   src/kcmodule.cpp 92e5427c121491e4ebf289addda040cc117cdd68 
> 
> Diff: https://git.reviewboard.kde.org/r/119540/diff/
> 
> 
> Testing
> -------
> 
> tested with clock kcm, succesfully can talk with the helper app if the bogus 
> actionid "" wasn't used intermediately
> 
> 
> Thanks,
> 
> Harald Sitter
> 
>

_______________________________________________
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel

Reply via email to