diff options
Diffstat (limited to 'libglusterfs')
| -rw-r--r-- | libglusterfs/src/options.c | 10 | 
1 files changed, 10 insertions, 0 deletions
diff --git a/libglusterfs/src/options.c b/libglusterfs/src/options.c index f63c60476da..9edb7c03df2 100644 --- a/libglusterfs/src/options.c +++ b/libglusterfs/src/options.c @@ -58,6 +58,7 @@ xlator_option_validate_int (xlator_t *xl, const char *key, const char *value,                              volume_option_t *opt, char **op_errstr)  {          long long inputll = 0; +        unsigned long long uinputll = 0;          int       ret = -1;          char      errstr[256]; @@ -70,6 +71,15 @@ xlator_option_validate_int (xlator_t *xl, const char *key, const char *value,                  goto out;          } +        /* Handle '-0' */ +        if ((inputll == 0) && (gf_string2ulonglong (value, &uinputll) != 0)) { +                snprintf (errstr, 256, +                          "invalid number format \"%s\" in option \"%s\"", +                          value, key); +                gf_log (xl->name, GF_LOG_ERROR, "%s", errstr); +                goto out; +        } +          if ((opt->min == 0) && (opt->max == 0) &&              (opt->validate == GF_OPT_VALIDATE_BOTH)) {                  gf_log (xl->name, GF_LOG_TRACE,  | 
