[components][lwp]fix mount param issue (#9333)

fix mount param issue
This commit is contained in:
zms123456 2024-08-23 05:52:19 +08:00 committed by GitHub
parent d3b9480658
commit fd31965c3c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 21 additions and 4 deletions

View File

@ -5784,13 +5784,30 @@ 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)
struct stat buf;
if (copy_source && stat(copy_source, &buf) && S_ISBLK(buf.st_mode))
{
ret = -rt_get_errno();
char *dev_fullpath = dfs_normalize_path(RT_NULL, copy_source);
rt_free(copy_source);
RT_ASSERT(rt_strncmp(dev_fullpath, "/dev/", sizeof("/dev/") - 1) == 0);
ret = dfs_mount(dev_fullpath + sizeof("/dev/") - 1, copy_target, copy_filesystemtype, 0, tmp);
if (ret < 0)
{
ret = -rt_get_errno();
}
rt_free(dev_fullpath);
}
else
{
ret = dfs_mount(copy_source, copy_target, copy_filesystemtype, 0, tmp);
if (ret < 0)
{
ret = -rt_get_errno();
}
rt_free(copy_source);
}
rt_free(copy_source);
return ret;
}