diff options
Diffstat (limited to 'source/fitz/output.c')
-rw-r--r-- | source/fitz/output.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/source/fitz/output.c b/source/fitz/output.c index c34b8736..55d2522f 100644 --- a/source/fitz/output.c +++ b/source/fitz/output.c @@ -160,6 +160,14 @@ fz_new_output_with_path(fz_context *ctx, const char *filename, int append) if (!strcmp(filename, "/dev/null") || !fz_strcasecmp(filename, "nul:")) return NULL; + /* Ensure we create a brand new file. We don't want to clobber our old file. */ + if (!append) + { + if (remove(filename) < 0) + if (errno != ENOENT) + fz_throw(ctx, FZ_ERROR_GENERIC, "cannot remove file '%s': %s", filename, strerror(errno)); + } + file = fz_fopen(filename, append ? "ab" : "wb"); if (!file) fz_throw(ctx, FZ_ERROR_GENERIC, "cannot open file '%s': %s", filename, strerror(errno)); |