提交 397f2389 编写于 作者: L Luis Henriques 提交者: Ilya Dryomov

ceph: check negative offsets in ceph_llseek()

When a user requests SEEK_HOLE or SEEK_DATA with a negative offset
ceph_llseek should return -ENXIO.  Currently -EINVAL is being returned for
SEEK_DATA and 0 for SEEK_HOLE.
Signed-off-by: NLuis Henriques <lhenriques@suse.com>
Reviewed-by: NIlya Dryomov <idryomov@gmail.com>
Signed-off-by: NIlya Dryomov <idryomov@gmail.com>
上级 06d74376
...@@ -1481,13 +1481,13 @@ static loff_t ceph_llseek(struct file *file, loff_t offset, int whence) ...@@ -1481,13 +1481,13 @@ static loff_t ceph_llseek(struct file *file, loff_t offset, int whence)
offset += file->f_pos; offset += file->f_pos;
break; break;
case SEEK_DATA: case SEEK_DATA:
if (offset >= i_size) { if (offset < 0 || offset >= i_size) {
ret = -ENXIO; ret = -ENXIO;
goto out; goto out;
} }
break; break;
case SEEK_HOLE: case SEEK_HOLE:
if (offset >= i_size) { if (offset < 0 || offset >= i_size) {
ret = -ENXIO; ret = -ENXIO;
goto out; goto out;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册