TOP: Validate command options
Signed-off-by: shishir gowda <shishirng@gluster.com> Signed-off-by: Vijay Bellur <vijay@dev.gluster.com> BUG: 2628 () URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=2628
This commit is contained in:
parent
58974b02b6
commit
c68b1e28ae
@ -1331,15 +1331,19 @@ cli_cmd_volume_top_parse (const char **words, int wordcount,
|
||||
ret = dict_set_str (dict, "brick", value);
|
||||
|
||||
} else if (!strcmp (key, "list-cnt")) {
|
||||
list_cnt = atoi(value);
|
||||
if (list_cnt < 0 || list_cnt > 100) {
|
||||
ret = gf_is_str_int (value);
|
||||
if (!ret)
|
||||
list_cnt = atoi (value);
|
||||
if (ret || (list_cnt < 0) || (list_cnt > 100)) {
|
||||
cli_out ("list-cnt should be between 0 to 100");
|
||||
ret = -1;
|
||||
goto out;
|
||||
}
|
||||
} else if (perf && !strcmp (key, "bs")){
|
||||
blk_size = atoi (value);
|
||||
if (blk_size < 0){
|
||||
} else if (perf && !strcmp (key, "bs")) {
|
||||
ret = gf_is_str_int (value);
|
||||
if (!ret)
|
||||
blk_size = atoi (value);
|
||||
if (ret || (blk_size < 0)) {
|
||||
cli_out ("block size should be an integer "
|
||||
"greater than zero");
|
||||
ret = -1;
|
||||
@ -1347,8 +1351,10 @@ cli_cmd_volume_top_parse (const char **words, int wordcount,
|
||||
}
|
||||
ret = dict_set_int32 (dict, "blk-size", blk_size);
|
||||
} else if (perf && !strcmp (key, "count")) {
|
||||
count = atoi(value);
|
||||
if (count < 0 ){
|
||||
ret = gf_is_str_int (value);
|
||||
if (!ret)
|
||||
count = atoi(value);
|
||||
if (ret || (count < 0)) {
|
||||
cli_out ("count should be an integer greater "
|
||||
"zero");
|
||||
ret = -1;
|
||||
|
@ -1773,3 +1773,34 @@ gf_array_insertionsort (void *A, int l, int r, size_t elem_size,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int
|
||||
gf_is_str_int (const char *value)
|
||||
{
|
||||
int flag = 0;
|
||||
char *str = NULL;
|
||||
char *fptr = NULL;
|
||||
|
||||
GF_VALIDATE_OR_GOTO ("", value, out);
|
||||
|
||||
str = strdup (value);
|
||||
if (!str)
|
||||
goto out;
|
||||
|
||||
fptr = str;
|
||||
|
||||
while (*str) {
|
||||
if (!isdigit(*str)) {
|
||||
flag = 1;
|
||||
goto out;
|
||||
}
|
||||
str++;
|
||||
}
|
||||
|
||||
out:
|
||||
if (fptr)
|
||||
GF_FREE (fptr);
|
||||
|
||||
return flag;
|
||||
}
|
||||
|
||||
|
@ -359,4 +359,5 @@ void _get_md5_str (char *out_str, size_t outlen,
|
||||
const uint8_t *input, int n);
|
||||
void gf_array_insertionsort (void *a, int l, int r, size_t elem_size,
|
||||
gf_cmp cmp);
|
||||
int gf_is_str_int (const char *value);
|
||||
#endif /* _COMMON_UTILS_H */
|
||||
|
Loading…
x
Reference in New Issue
Block a user