summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Rajnoha <prajnoha@redhat.com>2015-01-21 16:44:02 +0100
committerPeter Rajnoha <prajnoha@redhat.com>2015-01-21 16:44:02 +0100
commitbea003e94ceec717c2c5b847a9a28ea3f8f42dad (patch)
treece511aae93210ba970a818fbf7f02dc8c81a70fd
parent57f67ce8558d9688d1e743aba5d65d1e1545aad6 (diff)
downloadlvm2-bea003e94ceec717c2c5b847a9a28ea3f8f42dad.tar.gz
config: improve config validation to check if setting with string value can be empty.
For example, with dmeventd/executable set to "" which is not allowed for this setting, the config validation now ends up with: $ lvm dumpconfig --validate Configuration setting "dmeventd/executable" invalid. It cannot be set to an empty value. LVM configuration invalid. This check for empty values for string config settings was not done before (we only checked empty arrays, but not scalar strings).
-rw-r--r--WHATS_NEW1
-rw-r--r--lib/config/config.c5
2 files changed, 6 insertions, 0 deletions
diff --git a/WHATS_NEW b/WHATS_NEW
index 15ab94ffc..02f76bec4 100644
--- a/WHATS_NEW
+++ b/WHATS_NEW
@@ -1,5 +1,6 @@
Version 2.02.116 -
====================================
+ Improve config validation to check if setting with string value can be empty.
Version 2.02.115 - 21st January 2015
====================================
diff --git a/lib/config/config.c b/lib/config/config.c
index 58efb3131..b47984fc7 100644
--- a/lib/config/config.c
+++ b/lib/config/config.c
@@ -790,6 +790,11 @@ static int _config_def_check_node_single_value(struct cft_check_handle *handle,
} else if (!(def->type & CFG_TYPE_STRING)) {
_log_type_error(rp, CFG_TYPE_STRING, def->type, handle->suppress_messages);
return 0;
+ } else if (!(def->flags & CFG_ALLOW_EMPTY) && !*v->v.str) {
+ log_warn_suppress(handle->suppress_messages,
+ "Configuration setting \"%s\" invalid. "
+ "It cannot be set to an empty value.", rp);
+ return 0;
}
break;
default: ;