From d381a0c3b24c686df7d2abc5f69d0e81e9065479 Mon Sep 17 00:00:00 2001
From: Dirk Engling <erdgeist@erdgeist.org>
Date: Sat, 18 Jan 2014 06:46:27 +0100
Subject: Make extractor work with un-encrypted files

---
 src/extractblocks_new.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/extractblocks_new.c b/src/extractblocks_new.c
index 53c16f2..c3fb899 100644
--- a/src/extractblocks_new.c
+++ b/src/extractblocks_new.c
@@ -89,11 +89,11 @@ int main( int args, char **argv )
            df[i] = mf[i] ^ mantra[i%4];
 
         /* Get values from LHA header */
-        header_len = df[0];
+        header_len = df[0] + 2;
         filename_len = df[21];
 
         /* Copy rest of header, so we can checksum */
-        for( i=enc_len; i<header_len+2; ++i)
+        for( i=enc_len; i<header_len; ++i)
            df[i] = mf[i];
 
         /* Make up new sequental file name */
@@ -102,12 +102,12 @@ int main( int args, char **argv )
         memcpy( ((uint8_t*)df) + 22, filename, filename_len);
 
         /* Recalculate checksum with new file name */
-        df[1] = 0; for( i=2; i<header_len+2; ++i) df[1] += df[i];
+        df[1] = 0; for( i=2; i<header_len; ++i) df[1] += df[i];
 
         /* Open file and dump our de-"crypted" header and then rest of file */
         i = open( filename, O_CREAT | O_TRUNC | O_WRONLY, 0644 );
-        write( i, df, enc_len );
-        write( i, mf + enc_len, offset - oldoffset - enc_len );
+        write( i, df, header_len );
+        write( i, mf + header_len, offset - oldoffset - header_len );
         close( i );
     }
     oldoffset = offset;
-- 
cgit v1.2.3