Was EINVAL. EROFS is more meaningful.
Signed-off-by: Charles Manning <cdhmanning@gmail.com>
{ ENOTDIR , "ENOTDIR"},
{ EISDIR , "EISDIR"},
{ ENFILE, "ENFILE"},
{ ENOTDIR , "ENOTDIR"},
{ EISDIR , "EISDIR"},
{ ENFILE, "ENFILE"},
int yaffs_chmod(const YCHAR *path, mode_t mode)
{
struct yaffs_obj *obj;
int yaffs_chmod(const YCHAR *path, mode_t mode)
{
struct yaffs_obj *obj;
+ if(mode & ~(0777)){
+ yaffsfs_SetError(-EINVAL);
+ return -1;
+ }
+
yaffsfs_Lock();
obj = yaffsfs_FindObject(NULL,path,0,1);
yaffsfs_Lock();
obj = yaffsfs_FindObject(NULL,path,0,1);
if(!obj)
yaffsfs_SetError(-ENOENT);
else if(obj->my_dev->read_only)
if(!obj)
yaffsfs_SetError(-ENOENT);
else if(obj->my_dev->read_only)
- yaffsfs_SetError(-EINVAL);
+ yaffsfs_SetError(-EROFS);
else
retVal = yaffsfs_DoChMod(obj,mode);
else
retVal = yaffsfs_DoChMod(obj,mode);
int yaffs_fchmod(int fd, mode_t mode)
{
struct yaffs_obj *obj;
int yaffs_fchmod(int fd, mode_t mode)
{
struct yaffs_obj *obj;
+ if(mode & ~(0777)){
+ yaffsfs_SetError(-EINVAL);
+ return -1;
+ }
+
yaffsfs_Lock();
obj = yaffsfs_GetHandleObject(fd);
if(!obj)
yaffsfs_Lock();
obj = yaffsfs_GetHandleObject(fd);
if(!obj)
- yaffsfs_SetError(-ENOENT);
+ yaffsfs_SetError(-EBADF);
else if(obj->my_dev->read_only)
else if(obj->my_dev->read_only)
- yaffsfs_SetError(-EINVAL);
+ yaffsfs_SetError(-EROFS);
else
retVal = yaffsfs_DoChMod(obj,mode);
else
retVal = yaffsfs_DoChMod(obj,mode);
+#ifndef EROFS
+#define EROFS 30
+#endif
+
#ifndef ERANGE
#define ERANGE 34
#endif
#ifndef ERANGE
#define ERANGE 34
#endif