<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"><html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'Consolas'; font-size:11pt; font-weight:400; font-style:normal;">On Saturday 17 January 2009, Sebastian Sauer wrote:<br>
> Michael Leupold wrote:<br>
> > Hi,<br>
> ><br>
> > I received a bugreport about someone loosing his wallet today. Basically<br>
> > a process filled his disk while the wallet was open. On closing it<br>
> > something went terribly wrong and he ended up with a kdewallet.kwl with<br>
> > size 0.<br>
> ><br>
> > I'm pretty much stuck because I couldn't reproduce myself but I assumed<br>
> > this couldn't happen as kwalletd's backend uses KSaveFile to make sure<br>
> > either the whole wallet gets saved or nothing. As KSaveFile seems to be<br>
> > currently unmaintained I hope someone of you knows if it's supposed to<br>
> > handle full disk and if there's a corner case where this might indeed<br>
> > lead to corruption.<br>
> ><br>
> > The bugreport is: http://bugs.kde.org/show_bug.cgi?id=181059<br>
> ><br>
> > Thanks and regards,<br>
> > Michael<br>
><br>
> in the method Backend::sync() in kwalletbackend.cc shouldn't the<br>
> returnvalues of the sf.write() be checked? else the sf.write() may fail, we<br>
> ignore it and then finalize the empty file...<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>Yeah, that certainly seems possible (and every single sf.write() needs to be checked no less).  Hard to say if this is the case for the bug reporter but just as RAID doesn't save you from rm -rf /, KSaveFile doesn't save you from trying to finalize() and empty file.<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"><br></p>Regards,<br>
 - Michael Pyne</p></body></html>