X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs2.git;a=blobdiff_plain;f=direct%2Fyaffsfs.c;h=9ac4493d7cf842171753097bd9c2521defe2b4b2;hp=9d7804c153d1e113aa6b987cf861de53f188b4e3;hb=70f8f5a74a83c0e0f8ee869a6d1c77c07b0e74f3;hpb=378bbdf4d64b8b26db55a495ab6ae520ff62e471 diff --git a/direct/yaffsfs.c b/direct/yaffsfs.c index 9d7804c..9ac4493 100644 --- a/direct/yaffsfs.c +++ b/direct/yaffsfs.c @@ -25,7 +25,7 @@ #endif -const char *yaffsfs_c_version="$Id: yaffsfs.c,v 1.13 2006-10-03 10:13:03 charles Exp $"; +const char *yaffsfs_c_version="$Id: yaffsfs.c,v 1.15 2006-11-17 01:43:48 charles Exp $"; // configurationList is the list of devices that are supported static yaffsfs_DeviceConfiguration *yaffsfs_configurationList; @@ -729,10 +729,6 @@ int yaffsfs_DoUnlink(const char *path,int isDirectory) { yaffsfs_SetError(-ENOTDIR); } - else if(isDirectory && obj->variantType != YAFFS_OBJECT_TYPE_DIRECTORY) - { - yaffsfs_SetError(-ENOTDIR); - } else { result = yaffs_Unlink(dir,name); @@ -1302,8 +1298,14 @@ struct yaffs_dirent *yaffs_readdir(yaffs_DIR *dirp) yaffsfs_SetError(0); if(dsc->nextReturn){ dsc->de.d_ino = yaffs_GetEquivalentObject(dsc->nextReturn)->objectId; + dsc->de.d_dont_use = (unsigned)dsc->nextReturn; dsc->de.d_off = dsc->offset++; - yaffs_GetObjectName(dsc->nextReturn,dsc->de.d_name,NAME_MAX+1); + yaffs_GetObjectName(dsc->nextReturn,dsc->de.d_name,NAME_MAX); + if(strlen(dsc->de.d_name) == 0) + { + // this should not happen! + strcpy(dsc->de.d_name,"zz"); + } dsc->de.d_reclen = sizeof(struct yaffs_dirent); retVal = &dsc->de; yaffsfs_DirAdvance(dsc);