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

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

diff --git a/queue-3.4/nfsd-add-get_uint-for-u32-s.patch b/queue-3.4/nfsd-add-get_uint-for-u32-s.patch
new file mode 100644 (file)
index 0000000..3bc7c4d
--- /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
+@@ -401,7 +401,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)
+@@ -459,7 +459,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;
+               /*
+@@ -468,7 +468,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
+@@ -228,6 +228,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 1412fe323374df93a56b154f20cf8dc88d614dd1..575952e2dc7531016251ac1f60eb1de1bf05e143 100644 (file)
@@ -23,5 +23,6 @@ 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
 nfsv4.1-we-must-release-the-sequence-id-when-we-fail-to-get-a-session-slot.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