diff --git a/src/encode/lzh.c b/src/encode/lzh.c index 70e7447c8380f3fd60afbd0b152463c31a1f75b5..80f1ed35192688159e24716a0fc40ee2be2c944c 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 (k > lzh->freq[++l]); + while (l < (sizeof(lzh->freq) / sizeof(lzh->freq[0])) && k > lzh->freq[++l]); l--; lzh->freq[c] = lzh->freq[l]; lzh->freq[l] = k;