Skip to content
Snippets Groups Projects
Commit 9c80d941 authored by patacongo's avatar patacongo
Browse files

Fix check for open files when overwriting an existing file

git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4019 42af7a65-404d-4744-a932-0658087f49c3
parent ee04a259
No related branches found
No related tags found
No related merge requests found
......@@ -423,11 +423,27 @@ static inline int nxffs_wropen(FAR struct nxffs_volume_s *volume,
ret = nxffs_findinode(volume, name, &entry);
if (ret == OK)
{
/* It exists. It would be an error if we are asked to create it
FAR struct nxffs_ofile_s *ofile;
/* It exists. Is the file already open for reading? */
ofile = nxffs_findofile(volume, name);
if (ofile)
{
/* The file is already open.
* Limitation: Files cannot be open both for reading and writing.
*/
fdbg("File is open for reading\n");
ret = -ENOSYS;
goto errout_with_exclsem;
}
/* It would be an error if we are asked to create the file
* exclusively.
*/
if ((oflags & (O_CREAT|O_EXCL)) == (O_CREAT|O_EXCL))
else if ((oflags & (O_CREAT|O_EXCL)) == (O_CREAT|O_EXCL))
{
fdbg("File exists, can't create O_EXCL\n");
ret = -EEXIST;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment