Corrected RLE decompression processing.
diff --git a/programs/winhelp/hlpfile.c b/programs/winhelp/hlpfile.c
index 24d5d4e..fd7027d 100644
--- a/programs/winhelp/hlpfile.c
+++ b/programs/winhelp/hlpfile.c
@@ -1790,18 +1790,18 @@
while (src < end)
{
ch = *src++;
- if (!(ch & 0x7F)) continue;
if (ch & 0x80)
{
ch &= 0x7F;
- if ((*dst) + ch < sdst)
+ if ((*dst) + ch <= sdst)
memcpy(*dst, src, ch);
src += ch;
}
else
{
- if ((*dst) + ch < sdst)
- memset(*dst, (char)*src++, ch);
+ if ((*dst) + ch <= sdst)
+ memset(*dst, (char)*src, ch);
+ src++;
}
*dst += ch;
}