Correction

git-svn-id: svn://svn.code.sf.net/p/sc2/code/trunk@2734 8092fc87-c524-0410-9efc-e669fe64eaf9
This commit is contained in:
Meep-Eep
2007-04-15 23:34:49 +00:00
parent f374ad00cc
commit fdd4e1fe83
2 changed files with 7 additions and 5 deletions
+1 -1
View File
@@ -151,7 +151,7 @@ packmem_list_offs
[1]. The length of a packaged file, even with the multiplier, is overflowed
for some resources.
The actual size is a multiple of 0x10000 times the multiplier larger.
This occurs in 8 packages in the PC version of Star Control II, in
This occurs in 18 packages in the PC version of Star Control II, in
1 packages of the Amiga version of Star Control 1, and in 2 packages of
the PC version of The Horde. The PC version of Star Control 1, and the 3DO
version of Star Control II don't have such overflows.
+6 -4
View File
@@ -69,6 +69,7 @@ main(int argc, char *argv[]) {
uint8 *buf;
index_header *h;
struct options opts;
off_t inSize;
parse_arguments(argc, argv, &opts);
@@ -83,8 +84,9 @@ main(int argc, char *argv[]) {
perror("stat() failed");
return EXIT_FAILURE;
}
inSize = sb.st_size;
buf = mmap(NULL, sb.st_size, PROT_READ, MAP_SHARED, in, 0);
buf = mmap(NULL, inSize, PROT_READ, MAP_SHARED, in, 0);
if (buf == MAP_FAILED) {
perror("mmap() failed");
return EXIT_FAILURE;
@@ -103,7 +105,7 @@ main(int argc, char *argv[]) {
}
{
FilesStats *stats = createFilesStats(h, buf, sb.st_size);
FilesStats *stats = createFilesStats(h, buf, inSize);
analyzeFilesStats(&opts, h, stats);
}
@@ -141,7 +143,7 @@ main(int argc, char *argv[]) {
}
// freeIndex(h);
munmap(buf, sb.st_size);
munmap(buf, inSize);
return EXIT_SUCCESS;
}
@@ -678,7 +680,7 @@ analyzeFilesStats(struct options *opts, const index_header *h,
size_t filesStatsI;
int multiplier = resourceSizeMultiplier(opts->type);
for (filesStatsI = 0; filesStatsI < filesStats->indexUpper - 1;
for (filesStatsI = 0; filesStatsI < filesStats->indexUpper;
filesStatsI++) {
FileStats *stats = &filesStats->fileStats[filesStatsI];
size_t packI;