diff -r 2d2d25361590 -r d1838696558c secureswitools/swisistools/source/sisxlibrary/utility_linux.cpp --- a/secureswitools/swisistools/source/sisxlibrary/utility_linux.cpp Tue Sep 28 14:48:39 2010 +0300 +++ b/secureswitools/swisistools/source/sisxlibrary/utility_linux.cpp Thu Oct 14 14:11:30 2010 +0300 @@ -300,7 +300,14 @@ } else if(creation == CREATE_ALWAYS) { - fd = creat(filename, 0664); + fd = creat(filename, 0666); + //Set access right depending on umask after + //re-creating (file already exists) the file. + mode_t oldMask,mode; + oldMask = umask(0002); + umask(oldMask); + mode = ((0666) & (~oldMask)); + chmod(filename, mode); } else { @@ -394,10 +401,10 @@ return ret; } if(mode == _S_IWRITE || mode == _S_IWRITE | _S_IREAD) - chmod(tmp,S_IWUSR); + chmod(tmp,0666); else if(mode == _S_IREAD) - chmod(tmp,S_IRUSR); + chmod(tmp,0444); ret = mbstowcs(const_cast(filename),tmp,sizeof(tmp));