diff options
Diffstat (limited to '2910_lz4-compression-fix.patch')
-rw-r--r-- | 2910_lz4-compression-fix.patch | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/2910_lz4-compression-fix.patch b/2910_lz4-compression-fix.patch new file mode 100644 index 00000000..1c55f322 --- /dev/null +++ b/2910_lz4-compression-fix.patch @@ -0,0 +1,30 @@ +--- a/lib/lz4/lz4_decompress.c 2015-04-13 16:20:04.896315560 +0800 ++++ b/lib/lz4/lz4_decompress.c 2015-04-13 16:27:08.929317053 +0800 +@@ -139,8 +139,12 @@ + /* Error: request to write beyond destination buffer */ + if (cpy > oend) + goto _output_error; ++#if LZ4_ARCH64 ++ if ((ref + COPYLENGTH) > oend) ++#else + if ((ref + COPYLENGTH) > oend || + (op + COPYLENGTH) > oend) ++#endif + goto _output_error; + LZ4_SECURECOPY(ref, op, (oend - COPYLENGTH)); + while (op < cpy) +@@ -270,7 +274,13 @@ + if (cpy > oend - COPYLENGTH) { + if (cpy > oend) + goto _output_error; /* write outside of buf */ +- ++#if LZ4_ARCH64 ++ if ((ref + COPYLENGTH) > oend) ++#else ++ if ((ref + COPYLENGTH) > oend || ++ (op + COPYLENGTH) > oend) ++#endif ++ goto _output_error; + LZ4_SECURECOPY(ref, op, (oend - COPYLENGTH)); + while (op < cpy) + *op++ = *ref++; |