nfsd: add get_uint for u32's
I don't think there's a practical difference for the range of values these interfaces should see, but it would be safer to be unambiguous. Signed-off-by: J. Bruce Fields <bfields@redhat.com>
This commit is contained in:
@@ -398,7 +398,7 @@ fsloc_parse(char **mesg, char *buf, struct nfsd4_fs_locations *fsloc)
|
|||||||
int migrated, i, err;
|
int migrated, i, err;
|
||||||
|
|
||||||
/* listsize */
|
/* listsize */
|
||||||
err = get_int(mesg, &fsloc->locations_count);
|
err = get_uint(mesg, &fsloc->locations_count);
|
||||||
if (err)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
if (fsloc->locations_count > MAX_FS_LOCATIONS)
|
if (fsloc->locations_count > MAX_FS_LOCATIONS)
|
||||||
@@ -456,7 +456,7 @@ static int secinfo_parse(char **mesg, char *buf, struct svc_export *exp)
|
|||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
for (f = exp->ex_flavors; f < exp->ex_flavors + listsize; f++) {
|
for (f = exp->ex_flavors; f < exp->ex_flavors + listsize; f++) {
|
||||||
err = get_int(mesg, &f->pseudoflavor);
|
err = get_uint(mesg, &f->pseudoflavor);
|
||||||
if (err)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
/*
|
/*
|
||||||
@@ -465,7 +465,7 @@ static int secinfo_parse(char **mesg, char *buf, struct svc_export *exp)
|
|||||||
* problem at export time instead of when a client fails
|
* problem at export time instead of when a client fails
|
||||||
* to authenticate.
|
* to authenticate.
|
||||||
*/
|
*/
|
||||||
err = get_int(mesg, &f->flags);
|
err = get_uint(mesg, &f->flags);
|
||||||
if (err)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
/* Only some flags are allowed to differ between flavors: */
|
/* Only some flags are allowed to differ between flavors: */
|
||||||
|
|||||||
@@ -230,6 +230,22 @@ static inline int get_int(char **bpp, int *anint)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline int get_uint(char **bpp, unsigned int *anint)
|
||||||
|
{
|
||||||
|
char buf[50];
|
||||||
|
int len = qword_get(bpp, buf, sizeof(buf));
|
||||||
|
|
||||||
|
if (len < 0)
|
||||||
|
return -EINVAL;
|
||||||
|
if (len == 0)
|
||||||
|
return -ENOENT;
|
||||||
|
|
||||||
|
if (kstrtouint(buf, 0, anint))
|
||||||
|
return -EINVAL;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* timestamps kept in the cache are expressed in seconds
|
* timestamps kept in the cache are expressed in seconds
|
||||||
* since boot. This is the best for measuring differences in
|
* since boot. This is the best for measuring differences in
|
||||||
|
|||||||
Reference in New Issue
Block a user