summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlasdair Kergon <agk@redhat.com>2003-02-03 20:09:58 +0000
committerAlasdair Kergon <agk@redhat.com>2003-02-03 20:09:58 +0000
commit7e4867f7434965302d5453e62dd8c151bad69a64 (patch)
treef177088b3e5b01d46d7233e27954f837a3eee8c9
parentc0002e576ea0ce2c141a7ed33f1aa05756de849b (diff)
downloadlvm2-7e4867f7434965302d5453e62dd8c151bad69a64.tar.gz
lvm2-7e4867f7434965302d5453e62dd8c151bad69a64.tar.xz
lvm2-7e4867f7434965302d5453e62dd8c151bad69a64.zip
LV name validation
-rw-r--r--lib/format_text/format-text.c2
-rw-r--r--lib/metadata/metadata.h2
-rw-r--r--tools/lvcreate.c6
-rw-r--r--tools/lvrename.c4
-rw-r--r--tools/vgcfgrestore.c2
-rw-r--r--tools/vgcreate.c2
-rw-r--r--tools/vgrename.c2
7 files changed, 13 insertions, 7 deletions
diff --git a/lib/format_text/format-text.c b/lib/format_text/format-text.c
index f400971f..4956b9b9 100644
--- a/lib/format_text/format-text.c
+++ b/lib/format_text/format-text.c
@@ -781,7 +781,7 @@ int vgname_from_mda(const struct format_type *fmt, struct device_area *dev_area,
buf[len] = '\0';
/* Ignore this entry if the characters aren't permissible */
- if (!validate_vgname(buf)) {
+ if (!validate_name(buf)) {
stack;
goto out;
}
diff --git a/lib/metadata/metadata.h b/lib/metadata/metadata.h
index 9a574765..5973d989 100644
--- a/lib/metadata/metadata.h
+++ b/lib/metadata/metadata.h
@@ -436,7 +436,7 @@ int vg_add_snapshot(struct logical_volume *origin,
int vg_remove_snapshot(struct volume_group *vg, struct logical_volume *cow);
-static inline int validate_vgname(const char *n)
+static inline int validate_name(const char *n)
{
register char c;
register int len = 0;
diff --git a/tools/lvcreate.c b/tools/lvcreate.c
index 450477d3..74d21caa 100644
--- a/tools/lvcreate.c
+++ b/tools/lvcreate.c
@@ -116,6 +116,12 @@ static int _read_name_params(struct lvcreate_params *lp,
return 0;
}
+ if (!validate_name(lp->lv_name)) {
+ log_error("Logical volume name \"%s\" has invalid characters",
+ lp->lv_name);
+ return 0;
+ }
+
return 1;
}
diff --git a/tools/lvrename.c b/tools/lvrename.c
index f9c64571..b2671b74 100644
--- a/tools/lvrename.c
+++ b/tools/lvrename.c
@@ -55,7 +55,7 @@ int lvrename(struct cmd_context *cmd, int argc, char **argv)
return EINVALID_CMD_LINE;
}
- if (!validate_vgname(vg_name)) {
+ if (!validate_name(vg_name)) {
log_error("Please provide a valid volume group name");
return EINVALID_CMD_LINE;
}
@@ -95,7 +95,7 @@ int lvrename(struct cmd_context *cmd, int argc, char **argv)
return ECMD_FAILED;
}
- if (!validate_vgname(lv_name_new)) {
+ if (!validate_name(lv_name_new)) {
log_error
("New logical volume name \"%s\" has invalid characters",
lv_name_new);
diff --git a/tools/vgcfgrestore.c b/tools/vgcfgrestore.c
index 380760af..f48dc122 100644
--- a/tools/vgcfgrestore.c
+++ b/tools/vgcfgrestore.c
@@ -20,7 +20,7 @@ int vgcfgrestore(struct cmd_context *cmd, int argc, char **argv)
if (!strncmp(vg_name, cmd->dev_dir, strlen(cmd->dev_dir)))
vg_name += strlen(cmd->dev_dir);
- if (!validate_vgname(vg_name)) {
+ if (!validate_name(vg_name)) {
log_error("Volume group name \"%s\" has invalid characters",
vg_name);
return ECMD_FAILED;
diff --git a/tools/vgcreate.c b/tools/vgcreate.c
index 0ba620f4..52a29c0c 100644
--- a/tools/vgcreate.c
+++ b/tools/vgcreate.c
@@ -73,7 +73,7 @@ int vgcreate(struct cmd_context *cmd, int argc, char **argv)
return ECMD_FAILED;
}
- if (!validate_vgname(vg_name)) {
+ if (!validate_name(vg_name)) {
log_error("New volume group name \"%s\" has invalid characters",
vg_name);
return ECMD_FAILED;
diff --git a/tools/vgrename.c b/tools/vgrename.c
index c9f84724..c3015e8c 100644
--- a/tools/vgrename.c
+++ b/tools/vgrename.c
@@ -56,7 +56,7 @@ int vgrename(struct cmd_context *cmd, int argc, char **argv)
return ECMD_FAILED;
}
- if (!validate_vgname(vg_name_new)) {
+ if (!validate_name(vg_name_new)) {
log_error("New volume group name \"%s\" has invalid characters",
vg_name_new);
return ECMD_FAILED;