diff options
Diffstat (limited to 'fs/open.c')
| -rw-r--r-- | fs/open.c | 2 |
1 files changed, 2 insertions, 0 deletions
| @@ -844,6 +844,8 @@ static inline int build_open_flags(int flags, umode_t mode, struct open_flags *o | |||
| 844 | if ((flags & O_TMPFILE_MASK) != O_TMPFILE) | 844 | if ((flags & O_TMPFILE_MASK) != O_TMPFILE) |
| 845 | return -EINVAL; | 845 | return -EINVAL; |
| 846 | acc_mode = MAY_OPEN | ACC_MODE(flags); | 846 | acc_mode = MAY_OPEN | ACC_MODE(flags); |
| 847 | if (!(acc_mode & MAY_WRITE)) | ||
| 848 | return -EINVAL; | ||
| 847 | } else if (flags & O_PATH) { | 849 | } else if (flags & O_PATH) { |
| 848 | /* | 850 | /* |
| 849 | * If we have O_PATH in the open flag. Then we | 851 | * If we have O_PATH in the open flag. Then we |
