提交 1887f517 编写于 作者: H Herbert Valerio Riedel 提交者: David Woodhouse

[MTD] CORE mtdchar.c: fix off-by-one error in lseek()

Allow lseek(mtdchar_fd, 0, SEEK_END) to succeed, which currently fails
with EINVAL.

lseek(fd, 0, SEEK_END) should result into the same fileposition as
lseek(fd, 0, SEEK_SET) + read(fd, buf, length(fd))

Furthermore, lseek(fd, 0, SEEK_CUR) should return the current file position,
which in case of an encountered EOF should not result in EINVAL
Signed-off-by: NHerbert Valerio Riedel <hvr@gnu.org>
Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
Signed-off-by: NDavid Woodhouse <dwmw2@infradead.org>
上级 0e4ced59
无相关合并请求
......@@ -78,7 +78,7 @@ static loff_t mtd_lseek (struct file *file, loff_t offset, int orig)
return -EINVAL;
}
if (offset >= 0 && offset < mtd->size)
if (offset >= 0 && offset <= mtd->size)
return file->f_pos = offset;
return -EINVAL;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册
反馈
建议
客服 返回
顶部