summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firmware/common/file.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/firmware/common/file.c b/firmware/common/file.c
index 546a927..c09a7fe 100644
--- a/firmware/common/file.c
+++ b/firmware/common/file.c
@@ -135,7 +135,7 @@ int open(const char* pathname, int flags)
fat_open(entry->startcluster,
&(file->fatfile),
&(dir->fatdir));
- file->size = entry->size;
+ file->size = file->trunc ? 0 : entry->size;
file->attr = entry->attribute;
break;
}
@@ -236,7 +236,7 @@ int fsync(int fd)
/* truncate? */
if (file->trunc) {
- rc = ftruncate(fd, file->fileoffset);
+ rc = ftruncate(fd, file->size);
if (rc < 0)
return rc * 10 - 4;
}