mirror of
https://github.com/raspberrypi/linux.git
synced 2025-12-06 10:00:17 +00:00
ovl: use O_LARGEFILE in ovl_copy_up()
Open the lower file with O_LARGEFILE in ovl_copy_up(). Pass O_LARGEFILE unconditionally in ovl_copy_up_data() as it's purely for catching 32-bit userspace dealing with a file large enough that it'll be mishandled if the application isn't aware that there might be an integer overflow. Inside the kernel, there shouldn't be any problems. Reported-by: Ulrich Obergfell <uobergfe@redhat.com> Signed-off-by: David Howells <dhowells@redhat.com> Signed-off-by: Miklos Szeredi <miklos@szeredi.hu> Cc: <stable@vger.kernel.org> # v3.18+
This commit is contained in:
committed by
Miklos Szeredi
parent
64291f7db5
commit
0480334fa6
@@ -81,11 +81,11 @@ static int ovl_copy_up_data(struct path *old, struct path *new, loff_t len)
|
|||||||
if (len == 0)
|
if (len == 0)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
old_file = ovl_path_open(old, O_RDONLY);
|
old_file = ovl_path_open(old, O_LARGEFILE | O_RDONLY);
|
||||||
if (IS_ERR(old_file))
|
if (IS_ERR(old_file))
|
||||||
return PTR_ERR(old_file);
|
return PTR_ERR(old_file);
|
||||||
|
|
||||||
new_file = ovl_path_open(new, O_WRONLY);
|
new_file = ovl_path_open(new, O_LARGEFILE | O_WRONLY);
|
||||||
if (IS_ERR(new_file)) {
|
if (IS_ERR(new_file)) {
|
||||||
error = PTR_ERR(new_file);
|
error = PTR_ERR(new_file);
|
||||||
goto out_fput;
|
goto out_fput;
|
||||||
|
|||||||
Reference in New Issue
Block a user