Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 320400
b: refs/heads/master
c: a007c4c
h: refs/heads/master
v: v3
  • Loading branch information
J. Bruce Fields committed Jul 25, 2012
1 parent fda9831 commit 66f85bd
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 4 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: a6d88f293ecd1b7444e128777f4a893e7a998852
refs/heads/master: a007c4c3e943ecc054a806c259d95420a188754b
6 changes: 3 additions & 3 deletions trunk/fs/nfsd/export.c
Original file line number Diff line number Diff line change
Expand Up @@ -398,7 +398,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)
Expand Down Expand Up @@ -456,7 +456,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;
/*
Expand All @@ -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
* 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: */
Expand Down
16 changes: 16 additions & 0 deletions trunk/include/linux/sunrpc/cache.h
Original file line number Diff line number Diff line change
Expand Up @@ -230,6 +230,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
Expand Down

0 comments on commit 66f85bd

Please sign in to comment.