summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMikulas Patocka <mpatocka@redhat.com>2011-08-02 11:32:06 (GMT)
committerAlasdair G Kergon <agk@redhat.com>2011-08-02 11:32:06 (GMT)
commit759dea204cce9f1fc2a5d00ea25211299fc7a4a0 (patch)
tree3ddbfdc0c4cb97317ea0d0d7bb6879fcac72b840
parentba2e19b0f4ccd6920fe175a86521ff18ede260cb (diff)
downloadlinux-fsl-qoriq-759dea204cce9f1fc2a5d00ea25211299fc7a4a0.tar.xz
dm ioctl: forbid multiple device specifiers
Exactly one of name, uuid or device must be specified when referencing an existing device. This removes the ambiguity (risking the wrong device being updated) if two conflicting parameters were specified. Previously one parameter got used and any others were ignored silently. Signed-off-by: Mikulas Patocka <mpatocka@redhat.com> Signed-off-by: Alasdair G Kergon <agk@redhat.com>
-rw-r--r--drivers/md/dm-ioctl.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/md/dm-ioctl.c b/drivers/md/dm-ioctl.c
index 4c35091..2e9a3ca 100644
--- a/drivers/md/dm-ioctl.c
+++ b/drivers/md/dm-ioctl.c
@@ -739,10 +739,16 @@ static struct hash_cell *__find_device_hash_cell(struct dm_ioctl *param)
struct hash_cell *hc = NULL;
if (*param->uuid) {
+ if (*param->name || param->dev)
+ return NULL;
+
hc = __get_uuid_cell(param->uuid);
if (!hc)
return NULL;
} else if (*param->name) {
+ if (param->dev)
+ return NULL;
+
hc = __get_name_cell(param->name);
if (!hc)
return NULL;