diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-02-27 10:40:49 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-02-28 09:31:04 +0100 |
commit | 267de79ad27469a2ff7816043e76eecc99ffe38d (patch) | |
tree | bf9377d000588a76c203610fe04161e4e4f97b8d /cpukit/libfs/src/dosfs/msdos_misc.c | |
parent | f71ccc345e7347b5913d198a147af281351f9db1 (diff) |
dosfs: Directories should have a file size of 0
Close #2755.
Diffstat (limited to 'cpukit/libfs/src/dosfs/msdos_misc.c')
-rw-r--r-- | cpukit/libfs/src/dosfs/msdos_misc.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/cpukit/libfs/src/dosfs/msdos_misc.c b/cpukit/libfs/src/dosfs/msdos_misc.c index bd65850013..464c9816ea 100644 --- a/cpukit/libfs/src/dosfs/msdos_misc.c +++ b/cpukit/libfs/src/dosfs/msdos_misc.c @@ -820,7 +820,12 @@ fat_file_write_file_size( sec += (fat_fd->dir_pos.sname.ofs >> fs_info->vol.sec_log2); byte = (fat_fd->dir_pos.sname.ofs & (fs_info->vol.bps - 1)); - le_new_length = CT_LE_L((fat_fd->fat_file_size)); + if (fat_fd->fat_file_type == FAT_DIRECTORY) { + le_new_length = CT_LE_L(0); + } else { + le_new_length = CT_LE_L(fat_fd->fat_file_size); + } + ret = fat_sector_write(fs_info, sec, byte + MSDOS_FILE_SIZE_OFFSET, 4, (char *)(&le_new_length)); if ( ret < 0 ) |