X-Git-Url: https://yaffs.net/gitweb/?a=blobdiff_plain;f=direct%2Fyaffsfs.c;h=5194dd483f0c25e9568ce1913da20c9af1e86164;hb=26d3321e95784921c9fd24d80c9f738c57ef3aa1;hp=577cb361762c8db2e1c9d7c69d65c6b2446eb079;hpb=99a86b3ba4859f536d08c70f6797385fc94f2653;p=yaffs2.git diff --git a/direct/yaffsfs.c b/direct/yaffsfs.c index 577cb36..5194dd4 100644 --- a/direct/yaffsfs.c +++ b/direct/yaffsfs.c @@ -1210,7 +1210,7 @@ int yaffs_truncate(const YCHAR *path,off_t new_size) else if(obj->variant_type != YAFFS_OBJECT_TYPE_FILE) yaffsfs_SetError(-EISDIR); else if(obj->my_dev->read_only) - yaffsfs_SetError(-EACCES); + yaffsfs_SetError(-EROFS); else if(new_size < 0 || new_size > YAFFS_MAX_FILE_SIZE) yaffsfs_SetError(-EINVAL); else @@ -1234,6 +1234,8 @@ int yaffs_ftruncate(int fd, off_t new_size) if(!h || !obj) /* bad handle */ yaffsfs_SetError(-EBADF); + else if(!h->writing) + yaffsfs_SetError(-EINVAL); else if(obj->my_dev->read_only) yaffsfs_SetError(-EROFS); else if( new_size < 0 || new_size > YAFFS_MAX_FILE_SIZE)