• R/O
  • SSH
  • HTTPS

lha: Commit


Commit MetaInfo

Revision876 (tree)
Time2007-09-09 05:20:29
Authorarai

Log Message

Fix a bug: Could not extract 2G over files.

Change Summary

Incremental Difference

--- lha/trunk/src/header.c (revision 875)
+++ lha/trunk/src/header.c (revision 876)
@@ -614,10 +614,10 @@
614614 break;
615615 case 0x42:
616616 #if DUMP_HEADER
617- if (verbose_listing && verbose > 1) printf(" < Windows file size header>\n");
617+ if (verbose_listing && verbose > 1) printf(" < 64bits file size header >\n");
618618 #endif
619619 #ifdef HAVE_UINT64_T
620- /* Windows file size header (UNLHA32 extension) */
620+ /* 64bits file size header (UNLHA32 extension) */
621621 hdr->packed_size = get_longlongword();
622622 hdr->original_size = get_longlongword();
623623 #else
@@ -801,8 +801,8 @@
801801 }
802802
803803 get_bytes(hdr->method, 5, sizeof(hdr->method));
804- hdr->packed_size = get_longword();
805- hdr->original_size = get_longword();
804+ hdr->packed_size = (unsigned long)get_longword();
805+ hdr->original_size = (unsigned long)get_longword();
806806 hdr->unix_last_modified_stamp = generic_to_unix_stamp(get_longword());
807807 hdr->attribute = get_byte(); /* MS-DOS attribute */
808808 hdr->header_level = get_byte();
@@ -917,8 +917,8 @@
917917 }
918918
919919 get_bytes(hdr->method, 5, sizeof(hdr->method));
920- hdr->packed_size = get_longword(); /* skip size */
921- hdr->original_size = get_longword();
920+ hdr->packed_size = (unsigned long)get_longword(); /* skip size */
921+ hdr->original_size = (unsigned long)get_longword();
922922 hdr->unix_last_modified_stamp = generic_to_unix_stamp(get_longword());
923923 hdr->attribute = get_byte(); /* 0x20 fixed */
924924 hdr->header_level = get_byte();
@@ -1004,8 +1004,8 @@
10041004 }
10051005
10061006 get_bytes(hdr->method, 5, sizeof(hdr->method));
1007- hdr->packed_size = get_longword();
1008- hdr->original_size = get_longword();
1007+ hdr->packed_size = (unsigned long)get_longword();
1008+ hdr->original_size = (unsigned long)get_longword();
10091009 hdr->unix_last_modified_stamp = get_longword();
10101010 hdr->attribute = get_byte(); /* reserved */
10111011 hdr->header_level = get_byte();
@@ -1084,8 +1084,8 @@
10841084 }
10851085
10861086 get_bytes(hdr->method, 5, sizeof(hdr->method));
1087- hdr->packed_size = get_longword();
1088- hdr->original_size = get_longword();
1087+ hdr->packed_size = (unsigned long)get_longword();
1088+ hdr->original_size = (unsigned long)get_longword();
10891089 hdr->unix_last_modified_stamp = get_longword();
10901090 hdr->attribute = get_byte(); /* reserved */
10911091 hdr->header_level = get_byte();
Show on old repository browser