return -1;
}
- if(yaffsfs_CheckPath(newPath) < 0){
+ if(yaffsfs_CheckPath(oldPath) < 0 ||
+ yaffsfs_CheckPath(newPath) < 0){
yaffsfs_SetError(-ENAMETOOLONG);
return -1;
}
struct yaffs_dev *dev=NULL;
YCHAR *dummy;
+ if(!path){
+ yaffsfs_SetError(-EFAULT);
+ return -1;
+ }
+
if(yaffsfs_CheckPath(path) < 0){
yaffsfs_SetError(-ENAMETOOLONG);
return -1;
return -1;
}
- if(yaffsfs_CheckPath(newpath) < 0){
+ if(yaffsfs_CheckPath(newpath) < 0 ||
+ yaffsfs_CheckPath(oldpath) < 0){
yaffsfs_SetError(-ENAMETOOLONG);
return -1;
}
+
yaffsfs_Lock();
parent = yaffsfs_FindDirectory(NULL,newpath,&name,0,¬Dir,&loop);
if(!parent && notDir)
return -1;
}
- if(yaffsfs_CheckPath(linkpath) < 0){
+ if(yaffsfs_CheckPath(linkpath) < 0 ||
+ yaffsfs_CheckPath(oldpath) < 0){
yaffsfs_SetError(-ENAMETOOLONG);
return -1;
}