diff options
Diffstat (limited to 'src/client')
-rw-r--r-- | src/client/mac/handler/breakpad_nlist_64.cc | 10 | ||||
-rw-r--r-- | src/client/mac/handler/testcases/DynamicImagesTests.cc | 18 |
2 files changed, 11 insertions, 17 deletions
diff --git a/src/client/mac/handler/breakpad_nlist_64.cc b/src/client/mac/handler/breakpad_nlist_64.cc index 709e8546..4d9bbcc7 100644 --- a/src/client/mac/handler/breakpad_nlist_64.cc +++ b/src/client/mac/handler/breakpad_nlist_64.cc @@ -189,10 +189,10 @@ int __breakpad_fdnlist(int fd, nlist_type *list, const char **symbolNames, struct exec buf; if (read(fd, (char *)&buf, sizeof(buf)) != sizeof(buf) || - (N_BADMAG(buf) && *((long *)&buf) != magic && + (N_BADMAG(buf) && *((uint32_t *)&buf) != magic && NXSwapBigLongToHost(*((long *)&buf)) != FAT_MAGIC) && /* The following is the big-endian ppc64 check */ - (*((long*)&buf)) != FAT_MAGIC) { + (*((uint32_t*)&buf)) != FAT_MAGIC) { return -1; } @@ -232,7 +232,7 @@ int __breakpad_fdnlist(int fd, nlist_type *list, const char **symbolNames, } if (read(fd, (char *)fat_archs, sizeof(struct fat_arch) * fh.nfat_arch) != - (ssize_t)sizeof(struct fat_arch) * fh.nfat_arch) { + (ssize_t)(sizeof(struct fat_arch) * fh.nfat_arch)) { free(fat_archs); return -1; } @@ -296,7 +296,7 @@ int __breakpad_fdnlist(int fd, nlist_type *list, const char **symbolNames, return -1; } if (read(fd, (char *)load_commands, mh.sizeofcmds) != - mh.sizeofcmds) { + (ssize_t)mh.sizeofcmds) { free(load_commands); return -1; } @@ -304,7 +304,7 @@ int __breakpad_fdnlist(int fd, nlist_type *list, const char **symbolNames, struct load_command *lcp = load_commands; // iterate through all load commands, looking for // LC_SYMTAB load command - for (long i = 0; i < mh.ncmds; i++) { + for (uint32_t i = 0; i < mh.ncmds; i++) { if (lcp->cmdsize % sizeof(word_type) != 0 || lcp->cmdsize <= 0 || (char *)lcp + lcp->cmdsize > diff --git a/src/client/mac/handler/testcases/DynamicImagesTests.cc b/src/client/mac/handler/testcases/DynamicImagesTests.cc index cb76eb10..0fc7825b 100644 --- a/src/client/mac/handler/testcases/DynamicImagesTests.cc +++ b/src/client/mac/handler/testcases/DynamicImagesTests.cc @@ -55,21 +55,17 @@ void DynamicImagesTests::ReadTaskMemoryTest() { // pick test2 as a symbol we know to be valid to read // anything will work, really void *addr = reinterpret_cast<void*>(&test2); - void *buf; + std::vector<uint8_t> buf(getpagesize()); fprintf(stderr, "reading 0x%p\n", addr); - buf = google_breakpad::ReadTaskMemory(mach_task_self(), - addr, - getpagesize(), - &kr); + kr = google_breakpad::ReadTaskMemory(mach_task_self(), + (uint64_t)addr, + getpagesize(), + buf); CPTAssert(kr == KERN_SUCCESS); - CPTAssert(buf != NULL); - - CPTAssert(0 == memcmp(buf, (const void*)addr, getpagesize())); - - free(buf); + CPTAssert(0 == memcmp(&buf[0], (const void*)addr, getpagesize())); } void DynamicImagesTests::ReadLibrariesFromLocalTaskTest() { @@ -79,7 +75,5 @@ void DynamicImagesTests::ReadLibrariesFromLocalTaskTest() { fprintf(stderr,"Local task image count: %d\n", d->GetImageCount()); - d->TestPrint(); - CPTAssert(d->GetImageCount() > 0); } |