- set umask to 0077 before writing the cdkey, the rest of the world

doesn't need to read it.
This commit is contained in:
Ludwig Nussel 2005-11-06 13:45:20 +00:00
parent 4eaebe4a31
commit 87b12105bc
1 changed files with 15 additions and 3 deletions

View File

@ -24,8 +24,9 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#include "q_shared.h" #include "q_shared.h"
#include "qcommon.h" #include "qcommon.h"
#include <setjmp.h> #include <setjmp.h>
#if defined __linux__ || defined MACOS_X || defined __FreeBSD__ || defined __sun #ifndef _WIN32
#include <netinet/in.h> #include <netinet/in.h>
#include <sys/stat.h> // umask
#else #else
#include <winsock.h> #include <winsock.h>
#endif #endif
@ -2312,6 +2313,9 @@ static void Com_WriteCDKey( const char *filename, const char *ikey ) {
fileHandle_t f; fileHandle_t f;
char fbuffer[MAX_OSPATH]; char fbuffer[MAX_OSPATH];
char key[17]; char key[17];
#ifndef _WIN32
mode_t savedumask;
#endif
sprintf(fbuffer, "%s/q3key", filename); sprintf(fbuffer, "%s/q3key", filename);
@ -2323,10 +2327,13 @@ static void Com_WriteCDKey( const char *filename, const char *ikey ) {
return; return;
} }
#ifndef _WIN32
savedumask = umask(0077);
#endif
f = FS_SV_FOpenFileWrite( fbuffer ); f = FS_SV_FOpenFileWrite( fbuffer );
if ( !f ) { if ( !f ) {
Com_Printf ("Couldn't write %s.\n", filename ); Com_Printf ("Couldn't write CD key to %s.\n", fbuffer );
return; goto out;
} }
FS_Write( key, 16, f ); FS_Write( key, 16, f );
@ -2336,6 +2343,11 @@ static void Com_WriteCDKey( const char *filename, const char *ikey ) {
FS_Printf( f, "// id Software and Activision will NOT ask you to send this file to them.\r\n"); FS_Printf( f, "// id Software and Activision will NOT ask you to send this file to them.\r\n");
FS_FCloseFile( f ); FS_FCloseFile( f );
out:
#ifndef _WIN32
umask(savedumask);
#endif
return;
} }
#endif #endif