X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/0d13bfcd3dc0eac74361d98a550092ffa054e918..e436e0602b66c82acf0741ced8f9a19bd2060e70:/logging.c?ds=sidebyside diff --git a/logging.c b/logging.c index db02892a..49269ec3 100644 --- a/logging.c +++ b/logging.c @@ -43,7 +43,10 @@ static void logwrite(struct LogContext *ctx, void *data, int len) bufchain_add(&ctx->queue, data, len); } else if (ctx->state == L_OPEN) { assert(ctx->lgfp); - fwrite(data, 1, len, ctx->lgfp); + if (fwrite(data, 1, len, ctx->lgfp) < len) { + logfclose(ctx); + ctx->state = L_ERROR; + } } /* else L_ERROR, so ignore the write */ } @@ -85,7 +88,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 @@ -384,7 +387,7 @@ static void xlatlognam(Filename *dest, Filename src, char c; s++; size = 0; - if (*s) switch (c = *s++, tolower(c)) { + if (*s) switch (c = *s++, tolower((unsigned char)c)) { case 'y': size = strftime(buf, sizeof(buf), "%Y", tm); break;