From deb0b031fc290fc5c366fcc31aba0de87aa79db6 Mon Sep 17 00:00:00 2001 From: geniusgogo <2041245+geniusgogo@users.noreply.github.com> Date: Sat, 12 Aug 2023 10:49:26 +0800 Subject: [PATCH] fix dfs_file_open error code (#7942) --- components/dfs/dfs_v2/src/dfs_file.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/components/dfs/dfs_v2/src/dfs_file.c b/components/dfs/dfs_v2/src/dfs_file.c index ac18caefc1..b7fd4bdcad 100644 --- a/components/dfs/dfs_v2/src/dfs_file.c +++ b/components/dfs/dfs_v2/src/dfs_file.c @@ -429,7 +429,8 @@ int dfs_file_open(struct dfs_file *file, const char *path, int oflags, mode_t mo oflags &= ~O_EXCL; /* the dentry already exists */ dfs_dentry_unref(dentry); - dentry = RT_NULL; + ret = -EEXIST; + goto _ERR_RET; } } else @@ -536,6 +537,7 @@ int dfs_file_open(struct dfs_file *file, const char *path, int oflags, mode_t mo { DLOG(msg, "dfs_file", mnt->fs_ops->name, DLOG_MSG, "no permission or fops->open"); dfs_file_unref(file); + ret = -EPERM; } } else @@ -544,8 +546,6 @@ int dfs_file_open(struct dfs_file *file, const char *path, int oflags, mode_t mo ret = -ENOENT; } } - - rt_free(fullpath); } if (ret >= 0 && (oflags & O_TRUNC)) @@ -584,6 +584,11 @@ int dfs_file_open(struct dfs_file *file, const char *path, int oflags, mode_t mo } } +_ERR_RET: + if (fullpath != NULL) + { + rt_free(fullpath); + } return ret; }