From bea003e94ceec717c2c5b847a9a28ea3f8f42dad Mon Sep 17 00:00:00 2001 From: Peter Rajnoha Date: Wed, 21 Jan 2015 16:44:02 +0100 Subject: [PATCH] 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). --- WHATS_NEW | 1 + lib/config/config.c | 5 +++++ 2 files changed, 6 insertions(+) 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: ;