summaryrefslogtreecommitdiff
path: root/components
diff options
context:
space:
mode:
authorBernard Xiong <[email protected]>2024-07-18 20:32:06 +0800
committerGitHub <[email protected]>2024-07-18 20:32:06 +0800
commit937f0dbf5adc4f46acf049d8edd38547546fd0fd (patch)
tree1bb35842c9d0657f593bbbfd75e353e1fec7b951 /components
parent0efc408a00d087c346c222322374c75e6d33001a (diff)
parenta6b2014214f5609473bc013fdf7453cc67235459 (diff)
Merge pull request #9208 from zmshahaha/errno
[components][lwp]fix exec and mount error code
Diffstat (limited to 'components')
-rw-r--r--components/dfs/dfs_v2/src/dfs_fs.c2
-rw-r--r--components/lwp/lwp_syscall.c10
2 files changed, 9 insertions, 3 deletions
diff --git a/components/dfs/dfs_v2/src/dfs_fs.c b/components/dfs/dfs_v2/src/dfs_fs.c
index e65ccee478..755b257191 100644
--- a/components/dfs/dfs_v2/src/dfs_fs.c
+++ b/components/dfs/dfs_v2/src/dfs_fs.c
@@ -127,7 +127,7 @@ int dfs_mount(const char *device_name,
}
else
{
- rt_set_errno(ENOENT);
+ rt_set_errno(ENODEV);
ret = -1;
}
diff --git a/components/lwp/lwp_syscall.c b/components/lwp/lwp_syscall.c
index e539e0452b..21a34bd28e 100644
--- a/components/lwp/lwp_syscall.c
+++ b/components/lwp/lwp_syscall.c
@@ -2172,7 +2172,7 @@ rt_weak sysret_t sys_vfork(void)
sysret_t sys_execve(const char *path, char *const argv[], char *const envp[])
{
- int error = -1;
+ rt_err_t error = -1;
size_t len;
struct rt_lwp *new_lwp = NULL;
struct rt_lwp *lwp;
@@ -2223,8 +2223,9 @@ sysret_t sys_execve(const char *path, char *const argv[], char *const envp[])
if (access(kpath, X_OK) != 0)
{
+ error = rt_get_errno();
rt_free(kpath);
- return -EACCES;
+ return (sysret_t)error;
}
/* setup args */
@@ -5784,6 +5785,11 @@ sysret_t sys_mount(char *source, char *target,
copy_source = NULL;
}
ret = dfs_mount(copy_source, copy_target, copy_filesystemtype, 0, tmp);
+
+ if (ret < 0)
+ {
+ ret = -rt_get_errno();
+ }
rt_free(copy_source);
return ret;