diff options
| -rw-r--r-- | fs/read_write.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/fs/read_write.c b/fs/read_write.c index 5816d4c4cab0..511178d7723b 100644 --- a/fs/read_write.c +++ b/fs/read_write.c | |||
| @@ -1518,6 +1518,11 @@ ssize_t vfs_copy_file_range(struct file *file_in, loff_t pos_in, | |||
| 1518 | if (flags != 0) | 1518 | if (flags != 0) |
| 1519 | return -EINVAL; | 1519 | return -EINVAL; |
| 1520 | 1520 | ||
| 1521 | if (S_ISDIR(inode_in->i_mode) || S_ISDIR(inode_out->i_mode)) | ||
| 1522 | return -EISDIR; | ||
| 1523 | if (!S_ISREG(inode_in->i_mode) || !S_ISREG(inode_out->i_mode)) | ||
| 1524 | return -EINVAL; | ||
| 1525 | |||
| 1521 | ret = rw_verify_area(READ, file_in, &pos_in, len); | 1526 | ret = rw_verify_area(READ, file_in, &pos_in, len); |
| 1522 | if (unlikely(ret)) | 1527 | if (unlikely(ret)) |
| 1523 | return ret; | 1528 | return ret; |
