From a6fbf618f9e46629a254f1ad246f4ca93a897881 Mon Sep 17 00:00:00 2001 From: Charles Manning Date: Fri, 30 Jul 2010 13:53:10 +1200 Subject: [PATCH] yaffs Fix yaffs direct creating opening files with no name Opening a file with a name that was a directory would create a file named "" within that directory. This is now fixed. The call fails. Signed-off-by: Charles Manning --- direct/yaffsfs.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/direct/yaffsfs.c b/direct/yaffsfs.c index fc68b96..191c34f 100644 --- a/direct/yaffsfs.c +++ b/direct/yaffsfs.c @@ -573,12 +573,21 @@ int yaffs_open(const YCHAR *path, int oflag, int mode) if(obj) obj = yaffs_GetEquivalentObject(obj); - if(obj && obj->variantType != YAFFS_OBJECT_TYPE_FILE) + if(obj && + obj->variantType != YAFFS_OBJECT_TYPE_FILE && + obj->variantType != YAFFS_OBJECT_TYPE_DIRECTORY) obj = NULL; if(obj){ - /* The file already exists */ + /* The file already exists or it might be a directory */ + + /* If it is a directory then we can't open it as a file */ + if(obj->variantType == YAFFS_OBJECT_TYPE_DIRECTORY){ + openDenied = 1; + yaffsfs_SetError(-EISDIR); + errorReported = 1; + } /* Open should fail if O_CREAT and O_EXCL are specified since * the file exists -- 2.30.2