due to hardware limitations we cannot rely on the OESC error code
before the hardware parsed the initial huffman tree. For this case
we have to add a branch to the EOF handling. we return an errorcode 2
(invalid data) if we where still in the initial phase (bytes_out == 0).
Otherwise we continue with the default EOF handling.
---
 dfltcc.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/dfltcc.c b/dfltcc.c
index 9f86581..e45b3ce 100644
--- a/dfltcc.c
+++ b/dfltcc.c
@@ -18,6 +18,7 @@
 #include <config.h>
 
 #include <stdlib.h>
+#include <errno.h>
 
 #ifdef HAVE_SYS_SDT_H
 # include <sys/sdt.h>
@@ -438,6 +439,8 @@ dfltcc_inflate ()
             {
               /* Premature EOF.  */
               flush_outbuf ();
+              if (bytes_out == 0)
+                return 2;
               errno = 0;
               read_error ();
             }
-- 
2.48.1




Reply via email to