Loading fs/nfsd/export.c +3 −3 Original line number Diff line number Diff line Loading @@ -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) Loading Loading @@ -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; /* Loading @@ -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: */ Loading include/linux/sunrpc/cache.h +16 −0 Original line number Diff line number Diff line Loading @@ -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 Loading Loading
fs/nfsd/export.c +3 −3 Original line number Diff line number Diff line Loading @@ -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) Loading Loading @@ -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; /* Loading @@ -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: */ Loading
include/linux/sunrpc/cache.h +16 −0 Original line number Diff line number Diff line Loading @@ -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 Loading