[deflate] Fix literal data length calculation

Fix incorrect calculation used to determine length of data to be
copied within a literal data block, and add a test case to prevent
this bug from going undetected in future.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
Michael Brown
2014-01-08 23:21:23 +01:00
parent 9bdfc36bcc
commit 97fd5ccdd8
2 changed files with 8 additions and 1 deletions

View File

@@ -609,7 +609,7 @@ int deflate_inflate ( struct deflate *deflate,
/* Calculate available amount of literal data */
in_remaining = ( in->len - in->offset );
len = deflate->remaining;
if ( len < in_remaining )
if ( len > in_remaining )
len = in_remaining;
/* Copy data to output buffer */