38 lines
1.3 KiB
Diff
38 lines
1.3 KiB
Diff
From f335c8719b224d3ca7a967b6e91cebd5b26684fe Mon Sep 17 00:00:00 2001
|
|
From: Zac Medico <zmedico@gentoo.org>
|
|
Date: Sun, 23 Apr 2017 16:13:00 -0700
|
|
Subject: [PATCH] Fix bounds error in lzxd_static_init
|
|
|
|
https://bugs.gentoo.org/show_bug.cgi?id=540596
|
|
https://github.com/kovidgoyal/calibre/pull/650
|
|
|
|
This includes the changes from the following upstream commits:
|
|
|
|
https://github.com/kyz/libmspack/commit/6a42ddd1d472afeaf0f7da91e16b60ab2063fb92
|
|
https://github.com/kyz/libmspack/commit/ce3cc03aa500dd9c0b6b820f9519f6b6b9dede05
|
|
---
|
|
src/calibre/utils/lzx/lzxd.c | 3 ++-
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/src/calibre/utils/lzx/lzxd.c b/src/calibre/utils/lzx/lzxd.c
|
|
index e683a9e..c531aaa 100644
|
|
--- a/src/calibre/utils/lzx/lzxd.c
|
|
+++ b/src/calibre/utils/lzx/lzxd.c
|
|
@@ -357,11 +357,12 @@ static unsigned char extra_bits[51];
|
|
static void lzxd_static_init(void) {
|
|
int i, j;
|
|
|
|
- for (i = 0, j = 0; i < 51; i += 2) {
|
|
+ for (i = 0, j = 0; i < 50; i += 2) {
|
|
extra_bits[i] = j; /* 0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7... */
|
|
extra_bits[i+1] = j;
|
|
if ((i != 0) && (j < 17)) j++; /* 0,0,1,2,3,4...15,16,17,17,17,17... */
|
|
}
|
|
+ extra_bits[50] = 17;
|
|
|
|
for (i = 0, j = 0; i < 51; i++) {
|
|
position_base[i] = j; /* 0,1,2,3,4,6,8,12,16,24,32,... */
|
|
--
|
|
2.10.2
|
|
|