Stop attempting to make session logs private on Unix. This was introduced in
authorjacob <jacob@cda61777-01e9-0310-a592-d414129be87e>
Mon, 23 Feb 2009 22:40:09 +0000 (22:40 +0000)
committerjacob <jacob@cda61777-01e9-0310-a592-d414129be87e>
Mon, 23 Feb 2009 22:40:09 +0000 (22:40 +0000)
r7084 at the same time as sensible permissions when writing private key files;
however, it causes an assertion failure whenever an attempt is made to append
to an existing log file on Unix, and it's not clear what "is_private" *should*
do for append, so revert to log file security being the user's responsibility.
(Fixes Ubuntu LP#212711.)

git-svn-id: svn://svn.tartarus.org/sgt/putty@8461 cda61777-01e9-0310-a592-d414129be87e

logging.c
unix/uxmisc.c

index 17924c5..f1e3729 100644 (file)
--- a/logging.c
+++ b/logging.c
@@ -85,7 +85,7 @@ static void logfopen_callback(void *handle, int mode)
        ctx->state = L_ERROR;          /* disable logging */
     } else {
        fmode = (mode == 1 ? "ab" : "wb");
-       ctx->lgfp = f_open(ctx->currlogfilename, fmode, TRUE);
+       ctx->lgfp = f_open(ctx->currlogfilename, fmode, FALSE);
        if (ctx->lgfp)
            ctx->state = L_OPEN;
        else
index 4c6a767..dd04e6f 100644 (file)
@@ -141,7 +141,8 @@ FILE *f_open(struct Filename filename, char const *mode, int is_private)
        return fopen(filename.path, mode);
     } else {
        int fd;
-       assert(mode[0] == 'w');        /* is_private is meaningless for read */
+       assert(mode[0] == 'w');        /* is_private is meaningless for read,
+                                         and tricky for append */
        fd = open(filename.path, O_WRONLY | O_CREAT | O_TRUNC,
                      0700);
        if (fd < 0)