From 9c06595a1e83aba45c757df3c232b3dc42aa0214 Mon Sep 17 00:00:00 2001 From: bellard Date: Sat, 12 Jan 2002 16:39:35 +0000 Subject: win32 defines + new internal file layer --- bcheck.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) (limited to 'bcheck.c') diff --git a/bcheck.c b/bcheck.c index f4351cf..eff0525 100644 --- a/bcheck.c +++ b/bcheck.c @@ -80,10 +80,12 @@ static void libc_free(void *ptr); static void install_malloc_hooks(void); static void restore_malloc_hooks(void); +#ifndef WIN32 static void *saved_malloc_hook; static void *saved_free_hook; static void *saved_realloc_hook; static void *saved_memalign_hook; +#endif extern char _end; @@ -123,8 +125,7 @@ static BoundEntry *__bound_find_region(BoundEntry *e1, void *p) return __bound_empty_t2; } -/* print a bound error and recurse thru 'nb_callers' to get the error - position */ +/* print a bound error message */ static void bound_error(const void *caller, const char *fmt, ...) { rt_error((unsigned long)caller, "%s", fmt); @@ -132,7 +133,7 @@ static void bound_error(const void *caller, const char *fmt, ...) static void bound_alloc_error(void) { - bound_error(NULL, "not enough memory for bound checking code\n"); + bound_error(NULL, "not enough memory for bound checking code"); } /* currently, tcc cannot compile that because we use GNUC extensions */ @@ -406,7 +407,7 @@ void __bound_init(void) size = BOUND_T23_SIZE; mark_invalid(start, size); -#if !defined(__TINYC__) +#if !defined(__TINYC__) && !defined(WIN32) /* malloc zone is also marked invalid */ start = (unsigned long)&_end; size = 128 * 0x100000; @@ -641,6 +642,7 @@ static unsigned long get_region_size(void *p) static void install_malloc_hooks(void) { +#ifndef WIN32 saved_malloc_hook = __malloc_hook; saved_free_hook = __free_hook; saved_realloc_hook = __realloc_hook; @@ -649,14 +651,17 @@ static void install_malloc_hooks(void) __free_hook = __bound_free; __realloc_hook = __bound_realloc; __memalign_hook = __bound_memalign; +#endif } static void restore_malloc_hooks(void) { +#ifndef WIN32 __malloc_hook = saved_malloc_hook; __free_hook = saved_free_hook; __realloc_hook = saved_realloc_hook; __memalign_hook = saved_memalign_hook; +#endif } static void *libc_malloc(size_t size) @@ -693,6 +698,7 @@ void *__bound_malloc(size_t size, const void *caller) return ptr; } +#ifndef WIN32 void *__bound_memalign(size_t size, size_t align, const void *caller) { void *ptr; @@ -711,6 +717,7 @@ void *__bound_memalign(size_t size, size_t align, const void *caller) __bound_new_region(ptr, size); return ptr; } +#endif void __bound_free(void *ptr, const void *caller) { @@ -773,7 +780,7 @@ static void bound_dump(void) /* some useful checked functions */ /* check that (p ... p + size - 1) lies inside 'p' region, if any */ -static void __bound_check(const void *p, ssize_t size) +static void __bound_check(const void *p, size_t size) { if (size == 0) return; @@ -805,7 +812,7 @@ void *__bound_memset(void *dst, int c, size_t size) return memset(dst, c, size); } -/* resolve check check syms */ +/* resolve bound check syms */ typedef struct BCSyms { char *str; void *ptr; -- cgit v1.3.1