Fix a bug: Could not extract 2G over files.
@@ -614,10 +614,10 @@ | ||
614 | 614 | break; |
615 | 615 | case 0x42: |
616 | 616 | #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"); | |
618 | 618 | #endif |
619 | 619 | #ifdef HAVE_UINT64_T |
620 | - /* Windows file size header (UNLHA32 extension) */ | |
620 | + /* 64bits file size header (UNLHA32 extension) */ | |
621 | 621 | hdr->packed_size = get_longlongword(); |
622 | 622 | hdr->original_size = get_longlongword(); |
623 | 623 | #else |
@@ -801,8 +801,8 @@ | ||
801 | 801 | } |
802 | 802 | |
803 | 803 | 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(); | |
806 | 806 | hdr->unix_last_modified_stamp = generic_to_unix_stamp(get_longword()); |
807 | 807 | hdr->attribute = get_byte(); /* MS-DOS attribute */ |
808 | 808 | hdr->header_level = get_byte(); |
@@ -917,8 +917,8 @@ | ||
917 | 917 | } |
918 | 918 | |
919 | 919 | 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(); | |
922 | 922 | hdr->unix_last_modified_stamp = generic_to_unix_stamp(get_longword()); |
923 | 923 | hdr->attribute = get_byte(); /* 0x20 fixed */ |
924 | 924 | hdr->header_level = get_byte(); |
@@ -1004,8 +1004,8 @@ | ||
1004 | 1004 | } |
1005 | 1005 | |
1006 | 1006 | 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(); | |
1009 | 1009 | hdr->unix_last_modified_stamp = get_longword(); |
1010 | 1010 | hdr->attribute = get_byte(); /* reserved */ |
1011 | 1011 | hdr->header_level = get_byte(); |
@@ -1084,8 +1084,8 @@ | ||
1084 | 1084 | } |
1085 | 1085 | |
1086 | 1086 | 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(); | |
1089 | 1089 | hdr->unix_last_modified_stamp = get_longword(); |
1090 | 1090 | hdr->attribute = get_byte(); /* reserved */ |
1091 | 1091 | hdr->header_level = get_byte(); |