From 36faeeea3c9d249dc7df67b06cc4df6cefa4e8bb Mon Sep 17 00:00:00 2001 From: cohrs Date: Thu, 16 Oct 2003 16:18:26 +0000 Subject: [PATCH] debian bug #23229 - save file permissions Use fqname buffer 1 for restoring the save file (just like save does when creating it) so the value won't change out from under the code in unixmain. - Also moved a tty-specific hack in docompress_file that was causing the 'y' response to the "keep the save file" prompt to be echoed twice. --- doc/fixes34.3 | 1 + src/files.c | 2 +- sys/unix/unixmain.c | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/doc/fixes34.3 b/doc/fixes34.3 index 1628d9f2e..0f0c1de5b 100644 --- a/doc/fixes34.3 +++ b/doc/fixes34.3 @@ -62,6 +62,7 @@ win32gui: you couldn't specify an alignment in defaults.nh and have it stick win32gui: allow race/gender/alignment selections beyond those specified in defaults.nh, while still honoring defaults.nh choices unix: don't define errno if NHSTDC +unix: save file permissions could be wrong in explore/debug mode X11: avoid a possible crash when using window manger to close a player selection window Gnome: add Quiver menu item, fix outdated Quit menu item diff --git a/src/files.c b/src/files.c index 73577f94d..63f9d2f0e 100644 --- a/src/files.c +++ b/src/files.c @@ -1119,7 +1119,6 @@ boolean uncomp; # endif args[++i] = (char *)0; - f = fork(); # ifdef TTY_GRAPHICS /* If we don't do this and we are right after a y/n question *and* * there is an error message from the compression, the 'y' or 'n' can @@ -1128,6 +1127,7 @@ boolean uncomp; if (istty) mark_synch(); # endif + f = fork(); if (f == 0) { /* child */ # ifdef TTY_GRAPHICS /* any error messages from the compression must come out after diff --git a/sys/unix/unixmain.c b/sys/unix/unixmain.c index f2eb52321..8d269e901 100644 --- a/sys/unix/unixmain.c +++ b/sys/unix/unixmain.c @@ -262,7 +262,7 @@ char *argv[]; */ boolean remember_wiz_mode = wizard; #endif - const char *fq_save = fqname(SAVEF, SAVEPREFIX, 0); + const char *fq_save = fqname(SAVEF, SAVEPREFIX, 1); (void) chmod(fq_save,0); /* disallow parallel restores */ (void) signal(SIGINT, (SIG_RET_TYPE) done1); -- 2.50.1