Hi,
I think there is an issue with directory handling. We found this while
accidentally opening a directory instead a file. This let yaffs crash:
handle = yaffs_open(directory, oflag, 0755)
yaffs_lseek(handle, (Y_LOFF_T)0, SEEK_SET);
yaffs_close(obj->handle)
when directory contains a directory name.
Reason is that in yaffs_lseek the v member of yaffsfs_FileDes is touched:
if (pos >= 0 && pos <= YAFFS_MAX_FILE_SIZE)
fd->v.position = pos;
Later when closing in yaffsfs_PutFileDes v is used again:
yaffsfs_closedir_no_lock(fd->v.dir);
I think there is a check missing in yaffs_lseek if the handle points to a
directory. What do you think?
Robert.