| OLD | NEW |
| 1 // Copyright (c) 2005, Google Inc. | 1 // Copyright (c) 2005, Google Inc. |
| 2 // All rights reserved. | 2 // All rights reserved. |
| 3 // | 3 // |
| 4 // Redistribution and use in source and binary forms, with or without | 4 // Redistribution and use in source and binary forms, with or without |
| 5 // modification, are permitted provided that the following conditions are | 5 // modification, are permitted provided that the following conditions are |
| 6 // met: | 6 // met: |
| 7 // | 7 // |
| 8 // * Redistributions of source code must retain the above copyright | 8 // * Redistributions of source code must retain the above copyright |
| 9 // notice, this list of conditions and the following disclaimer. | 9 // notice, this list of conditions and the following disclaimer. |
| 10 // * Redistributions in binary form must reproduce the above | 10 // * Redistributions in binary form must reproduce the above |
| (...skipping 676 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 687 // e.g. for every section used in InHookCaller | 687 // e.g. for every section used in InHookCaller |
| 688 // all functions in that section must be inside the same library. | 688 // all functions in that section must be inside the same library. |
| 689 return 0; | 689 return 0; |
| 690 #endif | 690 #endif |
| 691 } | 691 } |
| 692 | 692 |
| 693 // On systems where we know how, we override mmap/munmap/mremap/sbrk | 693 // On systems where we know how, we override mmap/munmap/mremap/sbrk |
| 694 // to provide support for calling the related hooks (in addition, | 694 // to provide support for calling the related hooks (in addition, |
| 695 // of course, to doing what these functions normally do). | 695 // of course, to doing what these functions normally do). |
| 696 | 696 |
| 697 #if defined(__linux) && !defined(__ANDROID__) | 697 #if defined(__linux) |
| 698 # include "malloc_hook_mmap_linux.h" | 698 # include "malloc_hook_mmap_linux.h" |
| 699 | 699 |
| 700 #elif defined(__FreeBSD__) | 700 #elif defined(__FreeBSD__) |
| 701 # include "malloc_hook_mmap_freebsd.h" | 701 # include "malloc_hook_mmap_freebsd.h" |
| 702 | 702 |
| 703 #else | 703 #else |
| 704 | 704 |
| 705 /*static*/void* MallocHook::UnhookedMMap(void *start, size_t length, int prot, | 705 /*static*/void* MallocHook::UnhookedMMap(void *start, size_t length, int prot, |
| 706 int flags, int fd, off_t offset) { | 706 int flags, int fd, off_t offset) { |
| 707 void* result; | 707 void* result; |
| 708 if (!MallocHook::InvokeMmapReplacement( | 708 if (!MallocHook::InvokeMmapReplacement( |
| 709 start, length, prot, flags, fd, offset, &result)) { | 709 start, length, prot, flags, fd, offset, &result)) { |
| 710 result = mmap(start, length, prot, flags, fd, offset); | 710 result = mmap(start, length, prot, flags, fd, offset); |
| 711 } | 711 } |
| 712 return result; | 712 return result; |
| 713 } | 713 } |
| 714 | 714 |
| 715 /*static*/int MallocHook::UnhookedMUnmap(void *start, size_t length) { | 715 /*static*/int MallocHook::UnhookedMUnmap(void *start, size_t length) { |
| 716 int result; | 716 int result; |
| 717 if (!MallocHook::InvokeMunmapReplacement(start, length, &result)) { | 717 if (!MallocHook::InvokeMunmapReplacement(start, length, &result)) { |
| 718 result = munmap(start, length); | 718 result = munmap(start, length); |
| 719 } | 719 } |
| 720 return result; | 720 return result; |
| 721 } | 721 } |
| 722 | 722 |
| 723 #endif | 723 #endif |
| OLD | NEW |