mirror of
https://github.com/followmsi/android_kernel_google_msm.git
synced 2024-11-06 23:17:41 +00:00
nfsd: add get_uint for u32's
commit a007c4c3e9
upstream.
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>
Cc: Sasha Levin <sasha.levin@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
0ada2107a1
commit
588c72e881
2 changed files with 19 additions and 3 deletions
|
@ -401,7 +401,7 @@ fsloc_parse(char **mesg, char *buf, struct nfsd4_fs_locations *fsloc)
|
|||
int migrated, i, err;
|
||||
|
||||
/* listsize */
|
||||
err = get_int(mesg, &fsloc->locations_count);
|
||||
err = get_uint(mesg, &fsloc->locations_count);
|
||||
if (err)
|
||||
return err;
|
||||
if (fsloc->locations_count > MAX_FS_LOCATIONS)
|
||||
|
@ -459,7 +459,7 @@ static int secinfo_parse(char **mesg, char *buf, struct svc_export *exp)
|
|||
return -EINVAL;
|
||||
|
||||
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)
|
||||
return err;
|
||||
/*
|
||||
|
@ -468,7 +468,7 @@ static int secinfo_parse(char **mesg, char *buf, struct svc_export *exp)
|
|||
* problem at export time instead of when a client fails
|
||||
* to authenticate.
|
||||
*/
|
||||
err = get_int(mesg, &f->flags);
|
||||
err = get_uint(mesg, &f->flags);
|
||||
if (err)
|
||||
return err;
|
||||
/* Only some flags are allowed to differ between flavors: */
|
||||
|
|
|
@ -228,6 +228,22 @@ static inline int get_int(char **bpp, int *anint)
|
|||
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
|
||||
* since boot. This is the best for measuring differences in
|
||||
|
|
Loading…
Reference in a new issue