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 */
}
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