diff --git a/srogue/main.c b/srogue/main.c index daf235f..a3d942f 100644 --- a/srogue/main.c +++ b/srogue/main.c @@ -121,7 +121,7 @@ char **envp; #endif if (!use_savedir) - md_droppriv(); + md_normaluser(); /* get home and options from environment */ diff --git a/srogue/save.c b/srogue/save.c index ce82666..e758cdc 100644 --- a/srogue/save.c +++ b/srogue/save.c @@ -131,17 +131,13 @@ game_err(int a) /* * dosave: - * Set UID back to user and save the game + * Save the game. UID/GID no longer get reset here. */ dosave() { FILE *savef; ignore(); - if (!use_savedir) - { - md_resetpriv(); - } umask(022); if (file_name[0] != '\0') { @@ -287,50 +283,12 @@ char *file, **envp; #endif if (!wizard) { -#if defined(HAVE_WORKING_FORK) - endwin(); - if (!use_savedir) - { - while((pid = fork()) < 0) - sleep(1); - - /* set id to unlink file */ - if(pid == 0) - { - md_resetpriv(); - unlink(file); - exit(0); - } - /* wait for unlink to finish */ - else - { - while(wait(&ret_status) != pid) - continue; - if (ret_status < 0) - { - printf("Cannot unlink file\n"); - return FALSE; - } - } - } - else - { - /* Don't drop privileges, they're needed - * for the unlink. */ - if (unlink(file) < 0) - { - printf("Cannot unlink file\n"); - return FALSE; - } - } -#else if (unlink(file) < 0) { + endwin(); printf("Cannot unlink file\n"); return FALSE; } -#endif - } if (him->s_hpt <= 0) {