libc/chdir:"PWD" should save absolute path

Signed-off-by: anjiahao <anjiahao@xiaomi.com>
This commit is contained in:
anjiahao 2022-02-11 16:15:01 +08:00 committed by Alin Jerpelea
parent e749f6ca7e
commit ce3c604f48

View File

@ -100,6 +100,7 @@ int chdir(FAR const char *path)
struct stat buf;
char *oldpwd;
char *alloc;
char *abspath;
int errcode;
int ret;
@ -151,7 +152,15 @@ int chdir(FAR const char *path)
/* Set the cwd to the input 'path' */
setenv("PWD", path, TRUE);
abspath = realpath(path, NULL);
if (abspath == NULL)
{
errcode = ENOENT;
goto errout;
}
setenv("PWD", abspath, TRUE);
lib_free(abspath);
sched_unlock();
return OK;