summaryrefslogtreecommitdiff
path: root/arch/arm/insert_string_acle.c
diff options
context:
space:
mode:
authorMika Lindqvist <postmaster@raasu.org>2017-08-17 21:35:15 +0300
committerHans Kristian Rosbach <hk-github@circlestorm.org>2017-08-24 12:35:36 +0200
commit725f7bc04c68d648abbdda7af62a0d4fc24ca848 (patch)
tree34dbad17d7adf6afe8ac3a7a2b0171cf43a21f0a /arch/arm/insert_string_acle.c
parent79a262f7a4da3b1ebb2d543df65ca8420c623a3f (diff)
Fix that s->prev is not used uninitialized in insert_string_*
Diffstat (limited to 'arch/arm/insert_string_acle.c')
-rw-r--r--arch/arm/insert_string_acle.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/arch/arm/insert_string_acle.c b/arch/arm/insert_string_acle.c
index 985b726..419ddff 100644
--- a/arch/arm/insert_string_acle.c
+++ b/arch/arm/insert_string_acle.c
@@ -20,12 +20,13 @@
*/
#ifdef ARM_ACLE_CRC_HASH
Pos insert_string_acle(deflate_state *const s, const Pos str, unsigned int count) {
- Pos p, lp;
+ Pos p, lp, ret;
if (unlikely(count == 0)) {
return s->prev[str & s->w_mask];
}
+ ret = 0;
lp = str + count - 1; /* last position */
for (p = str; p <= lp; p++) {
@@ -43,8 +44,11 @@ Pos insert_string_acle(deflate_state *const s, const Pos str, unsigned int count
if (s->head[hm] != p) {
s->prev[p & s->w_mask] = s->head[hm];
s->head[hm] = p;
+ if (p == lp) {
+ ret = s->prev[lp & s->w_mask]);
+ }
}
}
- return s->prev[lp & s->w_mask];
+ return ret;
}
#endif