Skip to content

Commit 7f5e6bd

Browse files
gneworldmasayuki2009
authored andcommitted
hostfs: mask bit fields of not support
Signed-off-by: wanggang26 <[email protected]>
1 parent 52096ae commit 7f5e6bd

File tree

3 files changed

+9
-3
lines changed

3 files changed

+9
-3
lines changed

arch/arm/src/common/arm_hostfs.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,8 @@ static ssize_t host_flen(long fd)
7676

7777
static int host_flags_to_mode(int flags)
7878
{
79+
static const int modemasks = O_RDONLY | O_WRONLY | O_TEXT | O_RDWR |
80+
O_CREAT | O_TRUNC | O_APPEND;
7981
static const int modeflags[] =
8082
{
8183
O_RDONLY | O_TEXT,
@@ -96,7 +98,7 @@ static int host_flags_to_mode(int flags)
9698
int i;
9799
for (i = 0; modeflags[i] != 0; i++)
98100
{
99-
if (modeflags[i] == flags)
101+
if ((modemasks & flags) == modeflags[i])
100102
{
101103
return i;
102104
}

arch/arm64/src/common/arm64_hostfs.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,8 @@ static ssize_t host_flen(long fd)
7676

7777
static int host_flags_to_mode(int flags)
7878
{
79+
static const int modemasks = O_RDONLY | O_WRONLY | O_TEXT | O_RDWR |
80+
O_CREAT | O_TRUNC | O_APPEND;
7981
static const int modeflags[] =
8082
{
8183
O_RDONLY | O_TEXT,
@@ -96,7 +98,7 @@ static int host_flags_to_mode(int flags)
9698
int i;
9799
for (i = 0; modeflags[i] != 0; i++)
98100
{
99-
if (modeflags[i] == flags)
101+
if ((modemasks & flags) == modeflags[i])
100102
{
101103
return i;
102104
}

arch/risc-v/src/common/riscv_hostfs.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,8 @@ static ssize_t host_flen(long fd)
7676

7777
static int host_flags_to_mode(int flags)
7878
{
79+
static const int modemasks = O_RDONLY | O_WRONLY | O_TEXT | O_RDWR |
80+
O_CREAT | O_TRUNC | O_APPEND;
7981
static const int modeflags[] =
8082
{
8183
O_RDONLY | O_TEXT,
@@ -96,7 +98,7 @@ static int host_flags_to_mode(int flags)
9698
int i;
9799
for (i = 0; modeflags[i] != 0; i++)
98100
{
99-
if (modeflags[i] == flags)
101+
if ((modemasks & flags) == modeflags[i])
100102
{
101103
return i;
102104
}

0 commit comments

Comments
 (0)