]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.0-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 6 Nov 2012 10:00:37 +0000 (11:00 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 6 Nov 2012 10:00:37 +0000 (11:00 +0100)
added patches:
nfsd-add-get_uint-for-u32-s.patch

queue-3.0/nfsd-add-get_uint-for-u32-s.patch [new file with mode: 0644]
queue-3.0/series

diff --git a/queue-3.0/nfsd-add-get_uint-for-u32-s.patch b/queue-3.0/nfsd-add-get_uint-for-u32-s.patch
new file mode 100644 (file)
index 0000000..f4f6fb9
--- /dev/null
@@ -0,0 +1,75 @@
+From a007c4c3e943ecc054a806c259d95420a188754b Mon Sep 17 00:00:00 2001
+From: "J. Bruce Fields" <bfields@redhat.com>
+Date: Tue, 12 Jun 2012 16:54:16 -0400
+Subject: nfsd: add get_uint for u32's
+
+From: "J. Bruce Fields" <bfields@redhat.com>
+
+commit a007c4c3e943ecc054a806c259d95420a188754b 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>
+
+---
+ fs/nfsd/export.c             |    6 +++---
+ include/linux/sunrpc/cache.h |   16 ++++++++++++++++
+ 2 files changed, 19 insertions(+), 3 deletions(-)
+
+--- a/fs/nfsd/export.c
++++ b/fs/nfsd/export.c
+@@ -403,7 +403,7 @@ fsloc_parse(char **mesg, char *buf, stru
+       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)
+@@ -461,7 +461,7 @@ static int secinfo_parse(char **mesg, ch
+               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;
+               /*
+@@ -470,7 +470,7 @@ static int secinfo_parse(char **mesg, ch
+                * 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: */
+--- a/include/linux/sunrpc/cache.h
++++ b/include/linux/sunrpc/cache.h
+@@ -224,6 +224,22 @@ static inline int get_int(char **bpp, in
+       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
index f7ce6de7154fe9b7c6559c42607f9eae8b5cb073..93a84fc30b8fda50598da5339b414f29c175fc92 100644 (file)
@@ -10,5 +10,6 @@ mac80211-fix-ssid-copy-on-ibss-join.patch
 nfsv3-make-v3-mounts-fail-with-etimedouts-instead-eio-on-mountd-timeouts.patch
 nfs-show-original-device-name-verbatim-in-proc-mount-s-info.patch
 nfsv4-nfs4_locku_done-must-release-the-sequence-id.patch
+nfsd-add-get_uint-for-u32-s.patch
 nfs-fix-bug-in-legacy-dns-resolver.patch
 nfs-fix-oopses-in-nfs_lookup_revalidate-and-nfs4_lookup_revalidate.patch