libzutil: zfs_isnumber(): return false if input empty
zpool list, which is the only user, would mistakenly try to parse the empty string as the interval in this case: $ zpool list "a" cannot open 'a': no such pool $ zpool list "" interval cannot be zero usage: <usage string follows> which is now symmetric with zpool get: $ zpool list "" cannot open '': name must begin with a letter Avoid breaking the "interval cannot be zero" string. There simply isn't a need for this, and it's user-facing. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: Ryan Moeller <ryan@iXsystems.com> Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz> Closes #11841 Closes #11843
This commit is contained in:
parent
e2f5074c0f
commit
d09e1c1343
|
@ -4965,8 +4965,8 @@ get_interval_count(int *argcp, char **argv, float *iv,
|
|||
|
||||
if (*end == '\0' && errno == 0) {
|
||||
if (interval == 0) {
|
||||
(void) fprintf(stderr, gettext("interval "
|
||||
"cannot be zero\n"));
|
||||
(void) fprintf(stderr, gettext(
|
||||
"interval cannot be zero\n"));
|
||||
usage(B_FALSE);
|
||||
}
|
||||
/*
|
||||
|
@ -4996,8 +4996,8 @@ get_interval_count(int *argcp, char **argv, float *iv,
|
|||
|
||||
if (*end == '\0' && errno == 0) {
|
||||
if (interval == 0) {
|
||||
(void) fprintf(stderr, gettext("interval "
|
||||
"cannot be zero\n"));
|
||||
(void) fprintf(stderr, gettext(
|
||||
"interval cannot be zero\n"));
|
||||
usage(B_FALSE);
|
||||
}
|
||||
|
||||
|
|
|
@ -35,6 +35,9 @@
|
|||
boolean_t
|
||||
zfs_isnumber(const char *str)
|
||||
{
|
||||
if (!*str)
|
||||
return (B_FALSE);
|
||||
|
||||
for (; *str; str++)
|
||||
if (!(isdigit(*str) || (*str == '.')))
|
||||
return (B_FALSE);
|
||||
|
|
Loading…
Reference in New Issue