[scribus] collecting for output
Mark Heieis
mheieis at alois.ca
Tue Dec 10 22:55:14 UTC 2013
Interesting.
"p" gets the correct permissions for "oldFile" but "permsSet" fails on
"newFile".
My dev version of Scribus sits outside of my user context, in a
developer group but I do have them all set set to my UID:GID
On 2013-12-10 13:10, Craig Bradney wrote:
> On 10/12/2013 9:48 pm, Craig Bradney wrote:
>> On 10/12/2013 9:35 pm, Mark Heieis wrote:
>>> Hi
>>>
>>> I just repeated a simple test.
>>>
>>> 1) set my umask to 0002
>>> 2) created a 1 page doc
>>> 3) added single, existing jpg image from ~/sub-directory that had 664
>>> 4) saved document to home (~) directory.
>>>
>>> resultant sla got 664, as expected.
>>>
>>> 5) collected4 output to home (~) and shared subdirectories, both had 775 plus g+s for shared one.
>>> The result in both cases the collected document had 664 (as expected), the "images" directory
>>> created by Scribus had 775 (as expected) but the image file had 600 (not as expected)! At least for
>>> the home dir, all file permissions should be set to according to umask.
>>>
>>> *** So something is not respecting the umask conditions. So I don't see this as a conflict in
>>> choosing which file permission settings to use for security purposes, especially when saving within
>>> user home context.
>>>
>>> I'm wondering whether it is something that happens (overriding?) or not happening (being set?)
>>> within QFileInfo as I can't see any explicit setting of the umask/permissions in the src (could have
>>> missed it though).
>>>
>>> BTW - tested with 1.5.0svn
>>>
>>> mrh.
>>>
>> util_file.cpp has copyFileAtomic() which uses QTemporaryFile to copy the file into, then rename it.
>> There's no permissions being set or removed on purpose, which may be they should be (at least imo to
>> be the same as the original source file). The reason the sla is different is that its just being
>> resaved into the new location.
>>
>> Craig
>>
> Apply this patch and re-test..
>
> Index: scribus/collect4output.cpp
> ===================================================================
> --- scribus/collect4output.cpp (revision 18628)
> +++ scribus/collect4output.cpp (working copy)
> @@ -23,6 +23,7 @@
> #include "scpattern.h"
> #include "util_file.h"
>
> +#include <QDebug>
> #include <QDir>
> #include <QMap>
> #include <QMessageBox>
> @@ -465,7 +466,20 @@
> }
> if (copy)
> {
> - copyFileAtomic(oldFile, m_outputDirectory + "images/" + newFile);
> + QString outFile(m_outputDirectory + "images/" + newFile);
> + bool success=copyFileAtomic(oldFile, outFile);
> + if (!success)
> + qDebug()<<"CollectForOutput::collectFile copyFileAtomic failed for"<<oldFile<<"to"<<outFile;
> + else
> + {
> + QFileDevice::Permissions p=QFile::permissions(oldFile);
> + QFile of(outFile);
> + bool permsSet=of.setPermissions(p);
> + if (!permsSet)
> + qDebug()<<"Unable to set permissions successfully on"<<outFile;
> + else
> + qDebug()<<"Able to set permissions successfully on"<<outFile;
> + }
> }
> collectedFiles[newFile] = oldFile;
> return m_outputDirectory + "images/" + newFile;
>
>
> thanks
> Craig
>
>
> ___
> Scribus Mailing List: scribus at lists.scribus.net
> Edit your options or unsubscribe:
> http://lists.scribus.net/mailman/listinfo/scribus
> See also:
> http://wiki.scribus.net
> http://forums.scribus.net
More information about the scribus
mailing list