New: EXT4_IOC_MIGRATE is dangerous on directories
https://bugzilla.kernel.org/show_bug.cgi?id=40512
Summary: EXT4_IOC_MIGRATE is dangerous on directories
Product: File System
Version: 2.5
Kernel Version: 2.6.39
Platform: All
OS/Version: Linux
Tree: Mainline
Status: NEW
Severity: high
Priority: P1
Component: ext4
AssignedTo: [email protected]
ReportedBy: [email protected]
Regression: No
Using EXT4_IOC_MIGRATE on a non-extent directory seems to have terrible consequences. Consider the following example. "dir" is a old directory without extents.
$ ls -la dir/ total 12 drwxr-xr-x 2 benjamin benjamin 4096 Aug 3 20:42 . drwxr-xr-x 47 benjamin benjamin 4096 Aug 3 20:42 .. -rw-r----- 1 benjamin benjamin 7 Aug 3 20:42 something.txt $ cat migrate.c #include <fcntl.h> #include <stdio.h> #include <stdlib.h>
intmain(int argc, char **argv)
{
const char *fn = argv[1];
int fd, ret;
fd = open(fn, O_RDONLY);
/* This invokes EXT4_IOC_MIGRATE. */
ret = ioctl(fd, 0x6609);
close(fd);
if (ret < 0) {
fprintf(stderr, "ioctl failed\n");
return 1;
}
printf("Migration successful?\n");
return 0;
}
$ gcc -o migrate migrate.c
$ ./migrate dir
Migration successful?
$ ls -la dir
total 0 # !!!!!!!!!!!!!!Also, we why are you allowed to migrate stuff with only O_RDONLY access?
Signature · 3 lines
Configure bugmail: https://bugzilla.kernel.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are watching the assignee of the bug.
[Bug 40512] EXT4_IOC_MIGRATE is dangerous on directories
https://bugzilla.kernel.org/show_bug.cgi?id=40512
Tao Ma <[email protected]> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |[email protected]
--- Comment #1 from Tao Ma <[email protected]> 2011-08-04 06:31:42 --- Tested with 3.0, and it works here. git log shows that a possible fix should be 74e4e6db3 which is included in 3.0.
One thing you could confirm is to run:
debugfs 'stat dir' /dev/sdx
to see whether the EXTENTS flags is set or not. If it isn't set, it should be the root cause.
Signature · 3 lines
Configure bugmail: https://bugzilla.kernel.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are watching the assignee of the bug.
[Bug 40512] EXT4_IOC_MIGRATE is dangerous on directories
In reply to [email protected]https://bugzilla.kernel.org/show_bug.cgi?id=40512
--- Comment #2 from Benjamin Peterson <[email protected]> 2011-08-04 13:26:33 --- When I ran e2fsck on the partition, it reported EXTENTS_FL was not set.
Signature · 3 lines
Configure bugmail: https://bugzilla.kernel.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are watching the assignee of the bug.
[Bug 40512] EXT4_IOC_MIGRATE is dangerous on directories
In reply to [email protected]https://bugzilla.kernel.org/show_bug.cgi?id=40512
Benjamin Peterson <[email protected]> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |CODE_FIX--- Comment #3 from Benjamin Peterson <[email protected]> 2012-01-17 14:10:10 --- Indeed, it is now fixed. Thanks.
Signature · 3 lines
Configure bugmail: https://bugzilla.kernel.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are watching the assignee of the bug.