summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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;
}
}