<table><tr><td style="">martinkostolny added a comment.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D4847" rel="noreferrer">View Revision</a></tr></table><br /><div><div><blockquote style="border-left: 3px solid #a7b5bf; color: #464c5c; font-style: italic; margin: 4px 0 12px 0; padding: 4px 12px; background-color: #f8f9fc;"><p>it should work as it is now, or I am mistaken?</p></blockquote>

<p>I believe the latest diff update is indeed making use of atomic rename. I will roughly summarize what the code currently does:</p>

<ol class="remarkup-list">
<li class="remarkup-list-item">First try to open QSaveFile, if succeeded -> finish writing as before the patch</li>
<li class="remarkup-list-item">If opening QSaveFile fails KAuth action is called for creation of a temporary file in the same directory as the original target file</li>
<li class="remarkup-list-item">Then writing to this file is performed as regular user (same as before the patch)</li>
<li class="remarkup-list-item">Finally, second KAuth action is called to atomically rename the temporary file</li>
</ol>

<p>Owner and group is taken care of. Atomic rename is used only for Unix. On Windows there is a fallback using another QSaveFile which is also atomic when renaming but there is otherwise useless file copy beforehand. From my (non-expert) point of view this fallback is the only thing that needs fixing right now. But I currently cannot do that, it seems to me that it can be done later, too.</p>

<blockquote style="border-left: 3px solid #a7b5bf; color: #464c5c; font-style: italic; margin: 4px 0 12px 0; padding: 4px 12px; background-color: #f8f9fc;"><p>I am no security expert.</p></blockquote>

<p>Me neither. OK let's wait for somebody better qualified for this task :).</p></div></div><br /><div><strong>REPOSITORY</strong><div><div>R39 KTextEditor</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D4847" rel="noreferrer">https://phabricator.kde.org/D4847</a></div></div><br /><div><strong>To: </strong>martinkostolny, dhaumann, KTextEditor<br /><strong>Cc: </strong>apol, dfaure, anthonyfieroni, cullmann, ltoscano, dhaumann, graesslin, davidedmundson, palant, kwrite-devel, Frameworks, head7, kfunk, sars<br /></div>