summaryrefslogtreecommitdiffstats
path: root/libglusterfs/src/options.c
diff options
context:
space:
mode:
Diffstat (limited to 'libglusterfs/src/options.c')
-rw-r--r--libglusterfs/src/options.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/libglusterfs/src/options.c b/libglusterfs/src/options.c
index c8f2585ae2b..53bd779861c 100644
--- a/libglusterfs/src/options.c
+++ b/libglusterfs/src/options.c
@@ -248,19 +248,20 @@ void
set_error_str (char *errstr, size_t len, volume_option_t *opt, const char *key,
const char *value)
{
- int i = 0;
- char given_array[4096] = {0,};
+ int i = 0;
+ int ret = 0;
+
+ ret = snprintf (errstr, len, "option %s %s: '%s' is not valid "
+ "(possible options are ", key, value, value);
for (i = 0; (i < ZR_OPTION_MAX_ARRAY_SIZE) && opt->value[i];) {
- strcat (given_array, opt->value[i]);
+ ret += snprintf (errstr + ret, len - ret, "%s", opt->value[i]);
if (((++i) < ZR_OPTION_MAX_ARRAY_SIZE) &&
(opt->value[i]))
- strcat (given_array, ", ");
+ ret += snprintf (errstr + ret, len - ret, ", ");
else
- strcat (given_array, ".");
+ ret += snprintf (errstr + ret, len - ret, ".)");
}
- snprintf (errstr, len, "option %s %s: '%s' is not valid "
- "(possible options are %s)", key, value, value, given_array);
return;
}
@@ -332,6 +333,7 @@ xlator_option_validate_str (xlator_t *xl, const char *key, const char *value,
out:
if (ret) {
set_error_str (errstr, sizeof (errstr), opt, key, value);
+
gf_msg (xl->name, GF_LOG_ERROR, 0, LG_MSG_INVALID_ENTRY, "%s",
errstr);
if (op_errstr)