summaryrefslogtreecommitdiff
path: root/src/cache/backings/file_common.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/cache/backings/file_common.h')
-rw-r--r--src/cache/backings/file_common.h10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/cache/backings/file_common.h b/src/cache/backings/file_common.h
index 6dd4e96..8b4797d 100644
--- a/src/cache/backings/file_common.h
+++ b/src/cache/backings/file_common.h
@@ -35,14 +35,16 @@ static bool file_open_internal(struct cch_backing_file *file, str *path, size_t
if (!nn_file_wrap_fd(&file->file, fd)) {
return false;
}
- } else {
- if (!nn_file_open(&file->file, path, flags)) {
- return false;
- }
+ } else if (!nn_file_open(&file->file, path, flags)) {
+ return false;
}
size_t filesize = file->file.size;
if (!size) {
file->backing.size = filesize;
+ if (!filesize) {
+ nn_file_close(&file->file);
+ return false;
+ }
cch_backing_fill_range(&file->backing, 0, filesize);
} else if (filesize < size) {
nn_file_truncate(&file->file, size);