diff options
| author | xiao-mang <[email protected]> | 2024-04-25 18:28:53 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2024-04-25 18:28:53 +0800 |
| commit | 75f41723cb100618b289eae52980693b31b3bc1b (patch) | |
| tree | aea44b5b3aa64488b24a47a3e068333e94c9581b | |
| parent | be97a8ef25a46db542d1b7e9c1af6211723a324f (diff) | |
fix sys_getcwd (#8852)
| -rw-r--r-- | components/lwp/lwp_syscall.c | 10 |
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; } } |
