summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorxiao-mang <[email protected]>2024-04-25 18:28:53 +0800
committerGitHub <[email protected]>2024-04-25 18:28:53 +0800
commit75f41723cb100618b289eae52980693b31b3bc1b (patch)
treeaea44b5b3aa64488b24a47a3e068333e94c9581b
parentbe97a8ef25a46db542d1b7e9c1af6211723a324f (diff)
fix sys_getcwd (#8852)
-rw-r--r--components/lwp/lwp_syscall.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/components/lwp/lwp_syscall.c b/components/lwp/lwp_syscall.c
index 585101b71f..f7fe959eab 100644
--- a/components/lwp/lwp_syscall.c
+++ b/components/lwp/lwp_syscall.c
@@ -4718,9 +4718,10 @@ __exit:
}
#endif
-char *sys_getcwd(char *buf, size_t size)
+long sys_getcwd(char *buf, size_t size)
{
- char *tmp, *ret = RT_NULL;
+ char *tmp = RT_NULL;
+ long ret = -1;
if (!lwp_user_accessable((void *)buf, size))
{
@@ -4737,7 +4738,10 @@ char *sys_getcwd(char *buf, size_t size)
{
if (lwp_put_to_user(buf, tmp, size) > 0)
{
- ret = buf;
+ if (buf != RT_NULL)
+ ret = strlen(buf);
+ else
+ ret = -EFAULT;
}
}