Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mpc-hc/rarfilesource.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOctaneSnail <os@v12pwr.com>2012-02-02 23:53:31 +0400
committerOctaneSnail <os@v12pwr.com>2012-02-02 23:53:31 +0400
commitf1972bbb600e8bfa12336dd02d27b3e668982d94 (patch)
treedcf2f89bdca2507cf141fd9bd0b93f7567bb3ecf
parentf8354578d6dacb9b74c4b070d4d16d087cffac83 (diff)
Fix reading file headers with unknown content.
-rw-r--r--RAR.cpp28
-rw-r--r--RAR.h2
2 files changed, 3 insertions, 27 deletions
diff --git a/RAR.cpp b/RAR.cpp
index aa13ba6..9fd12a4 100644
--- a/RAR.cpp
+++ b/RAR.cpp
@@ -79,32 +79,10 @@ DWORD ReadHeader (HANDLE file, rar_header_t *dest)
READ_ITEM2 (dest->fh.filename, dest->fh.name_len);
dest->fh.filename [dest->fh.name_len] = 0;
- if (fh.flags & LHD_SALT)
- READ_ITEM2 (dest->fh.salt, 8);
-
- if (fh.flags & LHD_EXTTIME)
+ if (acc < fh.size)
{
- WORD flags;
- READ_ITEM (flags);
- for (int i= 0 ; i < 4; i++)
- {
- DWORD rmode = flags >> (3 - i) * 4;
- if (!(rmode & 8))
- continue;
-
- if (i != 0)
- {
- DWORD dosTime;
- READ_ITEM (dosTime);
- }
-
- int count = rmode & 3;
- for (int j = 0; j < count; j++)
- {
- BYTE byte;
- READ_ITEM (byte);
- }
- }
+ SetFilePointer (file, (LONG) (fh.size - acc), NULL, FILE_CURRENT);
+ acc = fh.size;
}
break;
diff --git a/RAR.h b/RAR.h
index 06545cd..cf528c1 100644
--- a/RAR.h
+++ b/RAR.h
@@ -82,8 +82,6 @@ typedef struct
char *filename;
- BYTE salt [8];
-
BYTE os;
BYTE version;
BYTE method;