aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2015-03-22 15:07:47 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2015-03-22 15:07:47 -0400
commit4541c226057ab55f2ad6a330a0bb519a0000f9ba (patch)
treef7bb2cac51a10245a2d8935515c2015b91e344be
parentb93dbeea7b0d2d24485e2cd8075adcac7f65dd4c (diff)
parentd5e7cafd69da24e6d6cc988fab6ea313a2577efc (diff)
Merge tag 'driver-core-4.0-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core
Pull driver core fixes from Greg KH: "Here are two bugfixes for things reported. One regression in kernfs, and another issue fixed in the LZ4 code that was fixed in the "upstream" codebase that solves a reported kernel crash Both have been in linux-next for a while" * tag 'driver-core-4.0-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: LZ4 : fix the data abort issue kernfs: handle poll correctly on 'direct_read' files.
-rw-r--r--fs/kernfs/file.c1
-rw-r--r--lib/lz4/lz4_decompress.c3
2 files changed, 4 insertions, 0 deletions
diff --git a/fs/kernfs/file.c b/fs/kernfs/file.c
index b684e8a132e6..2bacb9988566 100644
--- a/fs/kernfs/file.c
+++ b/fs/kernfs/file.c
@@ -207,6 +207,7 @@ static ssize_t kernfs_file_direct_read(struct kernfs_open_file *of,
207 goto out_free; 207 goto out_free;
208 } 208 }
209 209
210 of->event = atomic_read(&of->kn->attr.open->event);
210 ops = kernfs_ops(of->kn); 211 ops = kernfs_ops(of->kn);
211 if (ops->read) 212 if (ops->read)
212 len = ops->read(of, buf, len, *ppos); 213 len = ops->read(of, buf, len, *ppos);
diff --git a/lib/lz4/lz4_decompress.c b/lib/lz4/lz4_decompress.c
index 7a85967060a5..f0f5c5c3de12 100644
--- a/lib/lz4/lz4_decompress.c
+++ b/lib/lz4/lz4_decompress.c
@@ -139,6 +139,9 @@ static int lz4_uncompress(const char *source, char *dest, int osize)
139 /* Error: request to write beyond destination buffer */ 139 /* Error: request to write beyond destination buffer */
140 if (cpy > oend) 140 if (cpy > oend)
141 goto _output_error; 141 goto _output_error;
142 if ((ref + COPYLENGTH) > oend ||
143 (op + COPYLENGTH) > oend)
144 goto _output_error;
142 LZ4_SECURECOPY(ref, op, (oend - COPYLENGTH)); 145 LZ4_SECURECOPY(ref, op, (oend - COPYLENGTH));
143 while (op < cpy) 146 while (op < cpy)
144 *op++ = *ref++; 147 *op++ = *ref++;