Philip Martin wrote:

> I can fix kwallet with this patch:
[...]

Great.

Without the patch:

  * Non-interactive commands will not try to authenticate from the 
kwallet, and instead attempt the next authentication method which will 
typically fail, leaving the user puzzled because the same command works 
fine without the '--non-interactive' option.

With the patch:

  * Non-interactive commands will now simply work as they should, if the 
Kwallet is unlocked.

  * Non-interactive commands will throw an error, if locked.

  * Brings kwallet to the same behaviour as Gnome keyring.

  * But there are still some inconsistencies between neon/serf, and 
gnome/kde, w.r.t. whether it returns an error if locked or quietly goes 
on to try the next authn method.


> However I am worried about the TOCTOU race.  [...]

So, there's a chance that a "Please unlock the keyring" GUI window will pop up, 
if the kwallet is configured to time out and happens to time out during the 
window of opportunity, or if some other process explicitly locks it during that 
same window.

But that doesn't sound like a grave problem to me.  Sure there are some 
scenarios where a hanging window is a problem, and if and when it happens it 
will be a surprise which is not nice.  But if someone uses this on an 
unattended machine they need to ensure 
the keyring won't time out, or they won't get very far anyway.  The same is 
already true for Gnome keyring.

Seems like this fix is a big improvement already, and even better if we can 
make it more consistent with the Gnome-keyring behaviour.  If we care about the 
races, we can see about fixing them later, if there is any feasible way to do 
so.

- Julian

Reply via email to