diff options
author | Mika Lindqvist <postmaster@raasu.org> | 2017-08-17 21:35:15 +0300 |
---|---|---|
committer | Hans Kristian Rosbach <hk-github@circlestorm.org> | 2017-08-24 12:35:36 +0200 |
commit | 725f7bc04c68d648abbdda7af62a0d4fc24ca848 (patch) | |
tree | 34dbad17d7adf6afe8ac3a7a2b0171cf43a21f0a /arch/arm/insert_string_acle.c | |
parent | 79a262f7a4da3b1ebb2d543df65ca8420c623a3f (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.c | 8 |
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 |