]> git.saurik.com Git - ldid.git/commitdiff
Fixed a stupid bug in ldid that caused incorrect signatures occasionally. v1.0.371
authorJay Freeman (saurik) <saurik@saurik.com>
Tue, 22 Jul 2008 10:58:10 +0000 (10:58 +0000)
committerJay Freeman (saurik) <saurik@saurik.com>
Tue, 22 Jul 2008 10:58:10 +0000 (10:58 +0000)
ldid.cpp

index 869e849fe07382a9ce6fbf964e0a9165748ccb35..b58198845e85b7c6bb597de995e9eeb0a63ae59b 100644 (file)
--- a/ldid.cpp
+++ b/ldid.cpp
@@ -498,7 +498,7 @@ int main(int argc, const char *argv[]) {
                         for (size_t i = 0; i != pages - 1; ++i)
                             sha1(hashes[i], top + 0x1000 * i, 0x1000);
                     if (pages != 0)
-                        sha1(hashes[pages - 1], top + 0x1000 * (pages - 1), data % 0x1000);
+                        sha1(hashes[pages - 1], top + 0x1000 * (pages - 1), ((data - 1) % 0x1000) + 1);
                 }
         }
 
@@ -553,7 +553,7 @@ int main(int argc, const char *argv[]) {
                 for (size_t i = 0; i != pages - 1; ++i)
                     sha1(hashes[i], top + 0x1000 * i, 0x1000);
             if (pages != 0)
-                sha1(hashes[pages - 1], top + 0x1000 * (pages - 1), data % 0x1000);
+                sha1(hashes[pages - 1], top + 0x1000 * (pages - 1), ((data - 1) % 0x1000) + 1);
 
             directory->hashOffset = Swap(offset - begin);
             offset += sizeof(*hashes) * pages;