secureswitools/swisistools/source/sisxlibrary/utility_linux.cpp
changeset 77 d1838696558c
parent 50 c6e8afe0ba85
equal deleted inserted replaced
75:2d2d25361590 77:d1838696558c
   298 		{
   298 		{
   299 		fd = creat(filename, 0664);
   299 		fd = creat(filename, 0664);
   300 		}
   300 		}
   301 	else if(creation == CREATE_ALWAYS) 
   301 	else if(creation == CREATE_ALWAYS) 
   302 		{
   302 		{
   303 		fd = creat(filename, 0664);
   303 		fd = creat(filename, 0666);
       
   304 		//Set access right depending on umask after 
       
   305 		//re-creating (file already exists) the file.
       
   306 		mode_t oldMask,mode;
       
   307 		oldMask = umask(0002);
       
   308 		umask(oldMask);
       
   309 		mode = ((0666) & (~oldMask));
       
   310 		chmod(filename, mode);
   304 		}
   311 		}
   305 	else 
   312 	else 
   306 		{
   313 		{
   307 		printf("CreateFile: unknown creation flag %lu\n", creation);
   314 		printf("CreateFile: unknown creation flag %lu\n", creation);
   308 		}
   315 		}
   392 	 printf("wchmod: wcstombs error\n");
   399 	 printf("wchmod: wcstombs error\n");
   393 	 delete[] tmp;
   400 	 delete[] tmp;
   394 	 return ret;
   401 	 return ret;
   395 	 }
   402 	 }
   396 	 if(mode == _S_IWRITE || mode == _S_IWRITE | _S_IREAD)
   403 	 if(mode == _S_IWRITE || mode == _S_IWRITE | _S_IREAD)
   397 		chmod(tmp,S_IWUSR);
   404 		chmod(tmp,0666);
   398 	 else 
   405 	 else 
   399 		if(mode == _S_IREAD)
   406 		if(mode == _S_IREAD)
   400 		  chmod(tmp,S_IRUSR);   
   407 		  chmod(tmp,0444);   
   401 	 
   408 	 
   402 	ret = mbstowcs(const_cast<wchar_t*>(filename),tmp,sizeof(tmp));
   409 	ret = mbstowcs(const_cast<wchar_t*>(filename),tmp,sizeof(tmp));
   403 	
   410 	
   404 	if(ret == -1) 
   411 	if(ret == -1) 
   405 		{
   412 		{