Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bc0fd67f authored by Milan Broz's avatar Milan Broz Committed by Alasdair G Kergon
Browse files

dm ioctl: validate name length when renaming



When renaming a mapped device validate the length of the new name.

The rename ioctl accepted any correctly-terminated string enclosed
within the data passed from userspace.  The other ioctls enforce a
size limit of DM_NAME_LEN.  If the name is changed and becomes longer
than that, the device can no longer be addressed by name.

Fix it by properly checking for device name length (including
terminating zero).

Cc: stable@kernel.org
Signed-off-by: default avatarMilan Broz <mbroz@redhat.com>
Reviewed-by: default avatarJonathan Brassow <jbrassow@redhat.com>
Reviewed-by: default avatarAlasdair G Kergon <agk@redhat.com>
Signed-off-by: default avatarAlasdair G Kergon <agk@redhat.com>
parent 5bee17f1
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -704,7 +704,8 @@ static int dev_rename(struct dm_ioctl *param, size_t param_size)
	char *new_name = (char *) param + param->data_start;

	if (new_name < param->data ||
	    invalid_str(new_name, (void *) param + param_size)) {
	    invalid_str(new_name, (void *) param + param_size) ||
	    strlen(new_name) > DM_NAME_LEN - 1) {
		DMWARN("Invalid new logical volume name supplied.");
		return -EINVAL;
	}