diff options
author | Jay Freeman (saurik) <saurik@saurik.com> | 2009-05-20 06:35:14 +0000 |
---|---|---|
committer | Jay Freeman (saurik) <saurik@saurik.com> | 2009-05-20 06:35:14 +0000 |
commit | 122621c5586e9859fea83fa8abce68ceefb353d9 (patch) | |
tree | b194b4dcf253b282e2b57e3e26031e91e4064908 /ldid.cpp | |
parent | 82813bde024b6c73f349faf81366ea6150127e61 (diff) | |
download | ldid-122621c5586e9859fea83fa8abce68ceefb353d9.tar.gz ldid-122621c5586e9859fea83fa8abce68ceefb353d9.tar.zst ldid-122621c5586e9859fea83fa8abce68ceefb353d9.zip |
Make ldid workaround the stupid inode issue.v1.0.610
Diffstat (limited to 'ldid.cpp')
-rw-r--r-- | ldid.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
@@ -780,6 +780,22 @@ int main(int argc, const char *argv[]) { memset(blob + offset, 0, size - offset); } + if (flag_S) { + uint8_t *top = reinterpret_cast<uint8_t *>(framework.GetBase()); + size_t size = framework.GetSize(); + + char *copy; + asprintf(©, "%s.%s.cp", dir, base); + FILE *file = fopen(copy, "w+"); + size_t writ = fwrite(top, 1, size, file); + _assert(writ == size); + fclose(file); + + _syscall(unlink(temp)); + free(temp); + temp = copy; + } + if (temp) { struct stat info; _syscall(stat(path, &info)); |