projects
/
yaffs2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
yaffs direct: Fix more error handling
[yaffs2.git]
/
direct
/
yaffsfs.c
diff --git
a/direct/yaffsfs.c
b/direct/yaffsfs.c
index 577cb361762c8db2e1c9d7c69d65c6b2446eb079..5194dd483f0c25e9568ce1913da20c9af1e86164 100644
(file)
--- 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)
else if(obj->variant_type != YAFFS_OBJECT_TYPE_FILE)
yaffsfs_SetError(-EISDIR);
else if(obj->my_dev->read_only)
- yaffsfs_SetError(-E
ACCE
S);
+ yaffsfs_SetError(-E
ROF
S);
else if(new_size < 0 || new_size > YAFFS_MAX_FILE_SIZE)
yaffsfs_SetError(-EINVAL);
else
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);
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)
else if(obj->my_dev->read_only)
yaffsfs_SetError(-EROFS);
else if( new_size < 0 || new_size > YAFFS_MAX_FILE_SIZE)