Some error codes were not being set correctly. Fixed them.
More to follow...
Signed-off-by: Charles Manning <cdhmanning@gmail.com>
static yaffsfs_Handle yaffsfs_handle[YAFFSFS_N_HANDLES];
static int yaffsfs_handlesInitialised;
static yaffsfs_Handle yaffsfs_handle[YAFFSFS_N_HANDLES];
static int yaffsfs_handlesInitialised;
-unsigned int yaffs_trace_mask;
-int yaffs_set_trace(unsigned int tm)
+unsigned yaffs_set_trace(unsigned tm)
- return yaffs_trace_mask=tm;
+ yaffs_trace_mask = tm;
+ return yaffs_trace_mask;
-unsigned int yaffs_get_trace(void)
+unsigned yaffs_get_trace(void)
{
return yaffs_trace_mask;
}
{
return yaffs_trace_mask;
}
- new_nameLength = yaffs_strnlen(newname,YAFFS_MAX_NAME_LENGTH+1);
+ int nameLength = yaffs_strnlen(name,YAFFS_MAX_NAME_LENGTH+1);
- if(new_nameLength == 0){
yaffsfs_SetError(-ENOENT);
retVal = -1;
yaffsfs_SetError(-ENOENT);
retVal = -1;
- } else if (new_nameLength > YAFFS_MAX_NAME_LENGTH){
+ } else if (nameLength > YAFFS_MAX_NAME_LENGTH){
yaffsfs_SetError(-ENAMETOOLONG);
retVal = -1;
}
yaffsfs_SetError(-ENAMETOOLONG);
retVal = -1;
}
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(-EACCES);
+ else if(new_size < 0 || new_size > YAFFS_MAX_FILE_SIZE)
yaffsfs_SetError(-EINVAL);
else
result = yaffs_resize_file(obj,new_size);
yaffsfs_Unlock();
yaffsfs_SetError(-EINVAL);
else
result = yaffs_resize_file(obj,new_size);
yaffsfs_Unlock();
return (result) ? 0 : -1;
}
return (result) ? 0 : -1;
}
/* bad handle */
yaffsfs_SetError(-EBADF);
else if(obj->my_dev->read_only)
/* bad handle */
yaffsfs_SetError(-EBADF);
else if(obj->my_dev->read_only)
+ yaffsfs_SetError(-EACCES);
+ else if( new_size < 0 || new_size > YAFFS_MAX_FILE_SIZE)
yaffsfs_SetError(-EINVAL);
else
/* resize the file */
result = yaffs_resize_file(obj,new_size);
yaffsfs_Unlock();
yaffsfs_SetError(-EINVAL);
else
/* resize the file */
result = yaffs_resize_file(obj,new_size);
yaffsfs_Unlock();
return (result) ? 0 : -1;
}
return (result) ? 0 : -1;
}
yaffsfs_SetError(-EINVAL);
rename_allowed = 0;
} else if(olddir->my_dev != newdir->my_dev) {
yaffsfs_SetError(-EINVAL);
rename_allowed = 0;
} else if(olddir->my_dev != newdir->my_dev) {
- /* oops must be on same device */
- /* todo error */
+ /* Rename must be on same device */
yaffsfs_SetError(-EXDEV);
rename_allowed = 0;
} else if(obj && obj->variant_type == YAFFS_OBJECT_TYPE_DIRECTORY) {
yaffsfs_SetError(-EXDEV);
rename_allowed = 0;
} else if(obj && obj->variant_type == YAFFS_OBJECT_TYPE_DIRECTORY) {
+ if(amode & ~(R_OK | W_OK | X_OK)){
+ yaffsfs_SetError(-EINVAL);
+ return -1;
+ }
+
yaffsfs_Lock();
obj = yaffsfs_FindObject(NULL,path,0,1);
yaffsfs_Lock();
obj = yaffsfs_FindObject(NULL,path,0,1);
struct yaffs_obj *obj = NULL;
int retVal;
struct yaffs_obj *obj = NULL;
int retVal;
yaffsfs_Lock();
obj = yaffsfs_FindObject(NULL,path,0,1);
yaffsfs_Lock();
obj = yaffsfs_FindObject(NULL,path,0,1);
struct yaffs_obj *obj = NULL;
struct yaffs_obj *target = NULL;
int retVal = 0;
struct yaffs_obj *obj = NULL;
struct yaffs_obj *target = NULL;
int retVal = 0;
- int new_nameLength = 0;
-
#define NAME_MAX 256
#endif
#define NAME_MAX 256
#endif
+#define YAFFS_MAX_FILE_SIZE (0x7FFFFFFF)
+
struct yaffs_dirent{
long d_ino; /* inode number */
struct yaffs_dirent{
long d_ino; /* inode number */
int yaffs_dump_dev(const YCHAR *path);
/* Trace control functions */
int yaffs_dump_dev(const YCHAR *path);
/* Trace control functions */
-int yaffs_set_trace(unsigned int tm);
-unsigned int yaffs_get_trace(void);
+unsigned yaffs_set_trace(unsigned tm);
+unsigned yaffs_get_trace(void);