diff options
Diffstat (limited to 'libglusterfs/src/options.c')
| -rw-r--r-- | libglusterfs/src/options.c | 16 | 
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)  | 
