]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.4-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 7 Aug 2018 17:21:35 +0000 (19:21 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 7 Aug 2018 17:21:35 +0000 (19:21 +0200)
added patches:
jfs-fix-inconsistency-between-memory-allocation-and-ea_buf-max_size.patch

queue-4.4/jfs-fix-inconsistency-between-memory-allocation-and-ea_buf-max_size.patch [new file with mode: 0644]
queue-4.4/series

diff --git a/queue-4.4/jfs-fix-inconsistency-between-memory-allocation-and-ea_buf-max_size.patch b/queue-4.4/jfs-fix-inconsistency-between-memory-allocation-and-ea_buf-max_size.patch
new file mode 100644 (file)
index 0000000..610647e
--- /dev/null
@@ -0,0 +1,45 @@
+From 92d34134193e5b129dc24f8d79cb9196626e8d7a Mon Sep 17 00:00:00 2001
+From: Shankara Pailoor <shankarapailoor@gmail.com>
+Date: Tue, 5 Jun 2018 08:33:27 -0500
+Subject: jfs: Fix inconsistency between memory allocation and ea_buf->max_size
+
+From: Shankara Pailoor <shankarapailoor@gmail.com>
+
+commit 92d34134193e5b129dc24f8d79cb9196626e8d7a upstream.
+
+The code is assuming the buffer is max_size length, but we weren't
+allocating enough space for it.
+
+Signed-off-by: Shankara Pailoor <shankarapailoor@gmail.com>
+Signed-off-by: Dave Kleikamp <dave.kleikamp@oracle.com>
+Cc: Guenter Roeck <linux@roeck-us.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ fs/jfs/xattr.c |   10 ++++++----
+ 1 file changed, 6 insertions(+), 4 deletions(-)
+
+--- a/fs/jfs/xattr.c
++++ b/fs/jfs/xattr.c
+@@ -493,15 +493,17 @@ static int ea_get(struct inode *inode, s
+       if (size > PSIZE) {
+               /*
+                * To keep the rest of the code simple.  Allocate a
+-               * contiguous buffer to work with
++               * contiguous buffer to work with. Make the buffer large
++               * enough to make use of the whole extent.
+                */
+-              ea_buf->xattr = kmalloc(size, GFP_KERNEL);
++              ea_buf->max_size = (size + sb->s_blocksize - 1) &
++                  ~(sb->s_blocksize - 1);
++
++              ea_buf->xattr = kmalloc(ea_buf->max_size, GFP_KERNEL);
+               if (ea_buf->xattr == NULL)
+                       return -ENOMEM;
+               ea_buf->flag = EA_MALLOC;
+-              ea_buf->max_size = (size + sb->s_blocksize - 1) &
+-                  ~(sb->s_blocksize - 1);
+               if (ea_size == 0)
+                       return 0;
index 0362ed707e0c14f777150fdb02e1c5f9b2a3166a..ebfb64619dca5bae9ef33d4cff63d9446848c6c0 100644 (file)
@@ -9,3 +9,4 @@ ext4-fix-false-negatives-and-false-positives-in-ext4_check_descriptors.patch
 acpi-pci-bail-early-in-acpi_pci_add_bus-if-there-is-no-acpi-handle.patch
 ring_buffer-tracing-inherit-the-tracing-setting-to-next-ring-buffer.patch
 i2c-imx-fix-reinit_completion-use.patch
+jfs-fix-inconsistency-between-memory-allocation-and-ea_buf-max_size.patch