dm ioctl: Refuse to create device named "." or ".."

Using either of these is going to greatly confuse userspace, as they are
not valid symlink names and so creating the usual /dev/mapper/NAME
symlink will not be possible.  As creating a device with either of these
names is almost certainly a userspace bug, just error out.

Signed-off-by: Demi Marie Obenour <demi@invisiblethingslab.com>
Signed-off-by: Mike Snitzer <snitzer@kernel.org>
This commit is contained in:
Demi Marie Obenour 2023-06-03 10:52:44 -04:00 committed by Mike Snitzer
parent a85f1a9de9
commit 81ca2dbefa
1 changed files with 4 additions and 2 deletions

View File

@ -771,8 +771,10 @@ static int check_name(const char *name)
return -EINVAL;
}
if (strcmp(name, DM_CONTROL_NODE) == 0) {
DMERR("device name cannot be \"%s\"", DM_CONTROL_NODE);
if (strcmp(name, DM_CONTROL_NODE) == 0 ||
strcmp(name, ".") == 0 ||
strcmp(name, "..") == 0) {
DMERR("device name cannot be \"%s\", \".\", or \"..\"", DM_CONTROL_NODE);
return -EINVAL;
}