diff --git a/src/encode/lzh.c b/src/encode/lzh.c index 80f1ed35192688159e24716a0fc40ee2be2c944c..8797dc8787f8a341128619925e62af8e4ef9b989 100644 --- a/src/encode/lzh.c +++ b/src/encode/lzh.c @@ -450,7 +450,7 @@ static void lzh_update(lzh_t* lzh, short int c) /* swap nodes to keep the tree freq-ordered */ if (((unsigned)k) > ((unsigned)lzh->freq[l = c + 1])) { - while (l < (sizeof(lzh->freq) / sizeof(lzh->freq[0])) && k > lzh->freq[++l]); + while (l < (sizeof(lzh->freq) / sizeof(lzh->freq[0]) - 1) && k > lzh->freq[++l]); l--; lzh->freq[c] = lzh->freq[l]; lzh->freq[l] = k;