Commit fb925a51 by Mike Stump Committed by Mike Stump

mf-heuristics.c: Fix whitespace at end of line.

        * mf-heuristics.c: Fix whitespace at end of line.
        * mf-hooks1.c: Likewise.
        * mf-hooks2.c: Likewise.
        * mf-hooks3.c: Likewise.
        * mf-impl.h: Likewise.
        * mf-runtime.c: Likewise.
        * mf-runtime.h: Likewise.

From-SVN: r96850
parent b0250067
2005-03-21 Mike Stump <mrs@apple.com>
* mf-heuristics.c: Fix whitespace at end of line.
* mf-hooks1.c: Likewise.
* mf-hooks2.c: Likewise.
* mf-hooks3.c: Likewise.
* mf-impl.h: Likewise.
* mf-runtime.c: Likewise.
* mf-runtime.h: Likewise.
2005-03-21 Zack Weinberg <zack@codesourcery.com>
* configure.ac: Do not invoke TL_AC_GCC_VERSION.
......
......@@ -4,7 +4,7 @@
and Graydon Hoare <graydon@redhat.com>
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 2, or (at your option) any later
......@@ -46,10 +46,10 @@ extern char _end;
extern char _start;
/* Run some quick validation of the given region.
/* Run some quick validation of the given region.
Return -1 / 0 / 1 if the access known-invalid, possibly-valid, or known-valid.
*/
int
int
__mf_heuristic_check (uintptr_t ptr, uintptr_t ptr_high)
{
VERBOSE_TRACE ("mf: heuristic check\n");
......@@ -72,7 +72,7 @@ __mf_heuristic_check (uintptr_t ptr, uintptr_t ptr_high)
uintptr_t stack_segment_base = 0;
#endif
VERBOSE_TRACE ("mf: stack estimated as %p-%p\n",
VERBOSE_TRACE ("mf: stack estimated as %p-%p\n",
(void *) stack_top_guess, (void *) stack_segment_base);
if (ptr_high <= stack_segment_base &&
......@@ -80,7 +80,7 @@ __mf_heuristic_check (uintptr_t ptr, uintptr_t ptr_high)
ptr_high >= ptr)
{
return 1;
}
}
}
#endif
......@@ -118,13 +118,13 @@ __mf_heuristic_check (uintptr_t ptr, uintptr_t ptr_high)
if (! deja_vu)
{
/* Time to run the heuristic. Rescan /proc/self/maps; update the
entry[] array; XXX: remove expired entries, add new ones.
entry[] array; XXX: remove expired entries, add new ones.
XXX: Consider entries that have grown (e.g., stack). */
char buf[512];
char flags[4];
void *low, *high;
FILE *fp;
fp = fopen ("/proc/self/maps", "r");
if (fp)
{
......@@ -145,17 +145,17 @@ __mf_heuristic_check (uintptr_t ptr, uintptr_t ptr_high)
break;
}
}
VERBOSE_TRACE ("mf: registering region #%d "
"%p-%p given %s",
i, (void *) low, (void *) high, buf);
__mfu_register ((void *) low, (size_t) (high-low),
__MF_TYPE_GUESS,
__MF_TYPE_GUESS,
"/proc/self/maps segment");
return 0; /* undecided (tending to cachable) */
}
}
}
}
fclose (fp);
......
......@@ -42,7 +42,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#if !defined(__FreeBSD__) && !defined(__APPLE__)
#define _POSIX_SOURCE
#endif /* Some BSDs break <sys/socket.h> if this is defined. */
#define _GNU_SOURCE
#define _GNU_SOURCE
#define _XOPEN_SOURCE
#define _BSD_TYPES
#define __EXTENSIONS__
......@@ -93,11 +93,11 @@ WRAPPER(void *, malloc, size_t c)
void *result;
BEGIN_PROTECT (malloc, c);
size_with_crumple_zones =
size_with_crumple_zones =
CLAMPADD(c,CLAMPADD(__mf_opts.crumple_zone,
__mf_opts.crumple_zone));
result = (char *) CALL_REAL (malloc, size_with_crumple_zones);
if (LIKELY(result))
{
result += __mf_opts.crumple_zone;
......@@ -142,23 +142,23 @@ WRAPPER(void *, calloc, size_t c, size_t n)
DECLARE(void *, memset, void *, int, size_t);
char *result;
BEGIN_PROTECT (calloc, c, n);
size_with_crumple_zones =
size_with_crumple_zones =
CLAMPADD((c * n), /* XXX: CLAMPMUL */
CLAMPADD(__mf_opts.crumple_zone,
__mf_opts.crumple_zone));
__mf_opts.crumple_zone));
result = (char *) CALL_REAL (malloc, size_with_crumple_zones);
if (LIKELY(result))
memset (result, 0, size_with_crumple_zones);
if (LIKELY(result))
{
result += __mf_opts.crumple_zone;
__mf_register (result, c*n /* XXX: clamp */, __MF_TYPE_HEAP_I, "calloc region");
/* XXX: register __MF_TYPE_NOACCESS for crumple zones. */
}
return result;
}
......@@ -186,7 +186,7 @@ WRAPPER(void *, realloc, void *buf, size_t c)
if (LIKELY(buf))
base -= __mf_opts.crumple_zone;
size_with_crumple_zones =
size_with_crumple_zones =
CLAMPADD(c, CLAMPADD(__mf_opts.crumple_zone,
__mf_opts.crumple_zone));
result = (char *) CALL_REAL (realloc, base, size_with_crumple_zones);
......@@ -199,9 +199,9 @@ WRAPPER(void *, realloc, void *buf, size_t c)
__mf_opts.wipe_heap = 0;
if (LIKELY(buf))
__mfu_unregister (buf, 0, __MF_TYPE_HEAP_I);
__mfu_unregister (buf, 0, __MF_TYPE_HEAP_I);
/* NB: underlying region may have been __MF_TYPE_HEAP. */
if (LIKELY(result))
{
result += __mf_opts.crumple_zone;
......@@ -235,8 +235,8 @@ WRAPPER(void, free, void *buf)
static void *free_queue [__MF_FREEQ_MAX];
static unsigned free_ptr = 0;
static int freeq_initialized = 0;
DECLARE(void, free, void *);
DECLARE(void, free, void *);
BEGIN_PROTECT (free, buf);
if (UNLIKELY(buf == NULL))
......@@ -245,7 +245,7 @@ WRAPPER(void, free, void *buf)
LOCKTH ();
if (UNLIKELY(!freeq_initialized))
{
memset (free_queue, 0,
memset (free_queue, 0,
__MF_FREEQ_MAX * sizeof (void *));
freeq_initialized = 1;
}
......@@ -270,14 +270,14 @@ WRAPPER(void, free, void *buf)
{
if (__mf_opts.trace_mf_calls)
{
VERBOSE_TRACE ("freeing deferred pointer %p (crumple %u)\n",
VERBOSE_TRACE ("freeing deferred pointer %p (crumple %u)\n",
(void *) freeme,
__mf_opts.crumple_zone);
}
CALL_REAL (free, freeme);
}
}
else
}
else
{
/* back pointer up a bit to the beginning of crumple zone */
char *base = (char *)buf;
......@@ -285,8 +285,8 @@ WRAPPER(void, free, void *buf)
if (__mf_opts.trace_mf_calls)
{
VERBOSE_TRACE ("freeing pointer %p = %p - %u\n",
(void *) base,
(void *) buf,
(void *) base,
(void *) buf,
__mf_opts.crumple_zone);
}
CALL_REAL (free, base);
......@@ -305,20 +305,20 @@ __mf_0fn_mmap (void *start, size_t l, int prot, int f, int fd, off_t off)
#undef mmap
WRAPPER(void *, mmap,
void *start, size_t length, int prot,
WRAPPER(void *, mmap,
void *start, size_t length, int prot,
int flags, int fd, off_t offset)
{
DECLARE(void *, mmap, void *, size_t, int,
DECLARE(void *, mmap, void *, size_t, int,
int, int, off_t);
void *result;
BEGIN_PROTECT (mmap, start, length, prot, flags, fd, offset);
result = CALL_REAL (mmap, start, length, prot,
result = CALL_REAL (mmap, start, length, prot,
flags, fd, offset);
/*
VERBOSE_TRACE ("mmap (%08lx, %08lx, ...) => %08lx\n",
VERBOSE_TRACE ("mmap (%08lx, %08lx, ...) => %08lx\n",
(uintptr_t) start, (uintptr_t) length,
(uintptr_t) result);
*/
......@@ -363,11 +363,11 @@ WRAPPER(int , munmap, void *start, size_t length)
DECLARE(int, munmap, void *, size_t);
int result;
BEGIN_PROTECT (munmap, start, length);
result = CALL_REAL (munmap, start, length);
/*
VERBOSE_TRACE ("munmap (%08lx, %08lx, ...) => %08lx\n",
VERBOSE_TRACE ("munmap (%08lx, %08lx, ...) => %08lx\n",
(uintptr_t) start, (uintptr_t) length,
(uintptr_t) result);
*/
......@@ -387,7 +387,7 @@ WRAPPER(int , munmap, void *start, size_t length)
/* This wrapper is a little different, as it's called indirectly from
__mf_fini also to clean up pending allocations. */
__mf_fini also to clean up pending allocations. */
void *
__mf_wrap_alloca_indirect (size_t c)
{
......@@ -431,7 +431,7 @@ __mf_wrap_alloca_indirect (size_t c)
result = NULL;
if (LIKELY (c > 0)) /* alloca(0) causes no allocation. */
{
track = (struct alloca_tracking *) CALL_REAL (malloc,
track = (struct alloca_tracking *) CALL_REAL (malloc,
sizeof (struct alloca_tracking));
if (LIKELY (track != NULL))
{
......@@ -451,7 +451,7 @@ __mf_wrap_alloca_indirect (size_t c)
}
}
}
return result;
}
......
......@@ -41,7 +41,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#if !defined(__FreeBSD__) && !defined(__APPLE__)
#define _POSIX_SOURCE
#endif /* Some BSDs break <sys/socket.h> if this is defined. */
#define _GNU_SOURCE
#define _GNU_SOURCE
#define _XOPEN_SOURCE
#define _BSD_TYPES
#define __EXTENSIONS__
......@@ -192,7 +192,7 @@ WRAPPER2(char *, strcpy, char *dest, const char *src)
size_t n = strlen (src);
TRACE ("%s\n", __PRETTY_FUNCTION__);
MF_VALIDATE_EXTENT(src, CLAMPADD(n, 1), __MF_CHECK_READ, "strcpy src");
MF_VALIDATE_EXTENT(src, CLAMPADD(n, 1), __MF_CHECK_READ, "strcpy src");
MF_VALIDATE_EXTENT(dest, CLAMPADD(n, 1), __MF_CHECK_WRITE, "strcpy dest");
return strcpy (dest, src);
}
......@@ -216,7 +216,7 @@ WRAPPER2(char *, strcat, char *dest, const char *src)
size_t src_sz;
TRACE ("%s\n", __PRETTY_FUNCTION__);
dest_sz = strlen (dest);
src_sz = strlen (src);
src_sz = strlen (src);
MF_VALIDATE_EXTENT(src, CLAMPADD(src_sz, 1), __MF_CHECK_READ, "strcat src");
MF_VALIDATE_EXTENT(dest, CLAMPADD(dest_sz, CLAMPADD(src_sz, 1)),
__MF_CHECK_WRITE, "strcat dest");
......@@ -228,15 +228,15 @@ WRAPPER2(char *, strncat, char *dest, const char *src, size_t n)
{
/* nb: validating the extents (s,n) might be a mistake for two reasons.
(1) the string s might be shorter than n chars, and n is just a
(1) the string s might be shorter than n chars, and n is just a
poor choice by the programmer. this is not a "true" error in the
sense that the call to strncat would still be ok.
(2) we could try to compensate for case (1) by calling strlen(s) and
using that as a bound for the extent to verify, but strlen might fall off
the end of a non-terminated string, leading to a false positive.
so we will call strnlen(s,n) and use that as a bound.
if strnlen returns a length beyond the end of the registered extent
......@@ -265,7 +265,7 @@ WRAPPER2(int, strcmp, const char *s1, const char *s2)
size_t s2_sz;
TRACE ("%s\n", __PRETTY_FUNCTION__);
s1_sz = strlen (s1);
s2_sz = strlen (s2);
s2_sz = strlen (s2);
MF_VALIDATE_EXTENT(s1, CLAMPADD(s1_sz, 1), __MF_CHECK_READ, "strcmp 1st arg");
MF_VALIDATE_EXTENT(s2, CLAMPADD(s2_sz, 1), __MF_CHECK_WRITE, "strcmp 2nd arg");
return strcmp (s1, s2);
......@@ -278,7 +278,7 @@ WRAPPER2(int, strcasecmp, const char *s1, const char *s2)
size_t s2_sz;
TRACE ("%s\n", __PRETTY_FUNCTION__);
s1_sz = strlen (s1);
s2_sz = strlen (s2);
s2_sz = strlen (s2);
MF_VALIDATE_EXTENT(s1, CLAMPADD(s1_sz, 1), __MF_CHECK_READ, "strcasecmp 1st arg");
MF_VALIDATE_EXTENT(s2, CLAMPADD(s2_sz, 1), __MF_CHECK_READ, "strcasecmp 2nd arg");
return strcasecmp (s1, s2);
......@@ -318,7 +318,7 @@ WRAPPER2(char *, strdup, const char *s)
size_t n = strlen (s);
TRACE ("%s\n", __PRETTY_FUNCTION__);
MF_VALIDATE_EXTENT(s, CLAMPADD(n,1), __MF_CHECK_READ, "strdup region");
result = (char *)CALL_REAL(malloc,
result = (char *)CALL_REAL(malloc,
CLAMPADD(CLAMPADD(n,1),
CLAMPADD(__mf_opts.crumple_zone,
__mf_opts.crumple_zone)));
......@@ -343,11 +343,11 @@ WRAPPER2(char *, strndup, const char *s, size_t n)
MF_VALIDATE_EXTENT(s, sz, __MF_CHECK_READ, "strndup region"); /* nb: strNdup */
/* note: strndup still adds a \0, even with the N limit! */
result = (char *)CALL_REAL(malloc,
result = (char *)CALL_REAL(malloc,
CLAMPADD(CLAMPADD(n,1),
CLAMPADD(__mf_opts.crumple_zone,
__mf_opts.crumple_zone)));
if (UNLIKELY(! result)) return result;
result += __mf_opts.crumple_zone;
......@@ -393,7 +393,7 @@ WRAPPER2(char *, strstr, const char *haystack, const char *needle)
#ifdef HAVE_MEMMEM
WRAPPER2(void *, memmem,
WRAPPER2(void *, memmem,
const void *haystack, size_t haystacklen,
const void *needle, size_t needlelen)
{
......
......@@ -41,7 +41,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#if !defined(__FreeBSD__) && !defined(__APPLE__)
#define _POSIX_SOURCE
#endif /* Some BSDs break <sys/socket.h> if this is defined. */
#define _GNU_SOURCE
#define _GNU_SOURCE
#define _XOPEN_SOURCE
#define _BSD_TYPES
#define __EXTENSIONS__
......@@ -125,7 +125,7 @@ static unsigned __mf_pthread_info_idx[LIBMUDFLAPTH_THREADS_MAX];
/* Find any old empty entry in __mf_pthread_info; mark it used and
return it. Return NULL if there are no more available slots. */
struct pthread_info*
struct pthread_info*
__mf_allocate_blank_threadinfo (unsigned* idx)
{
static unsigned probe = LIBMUDFLAPTH_THREADS_MAX-1;
......@@ -158,7 +158,7 @@ __mf_allocate_blank_threadinfo (unsigned* idx)
}
}
while (probe != probe_at_start);
rc = pthread_mutex_unlock (& mutex);
assert (rc == 0);
return NULL;
......@@ -177,7 +177,7 @@ __mf_allocate_blank_threadinfo (unsigned* idx)
from this context, since a new thread might just be "booting up",
making printf unsafe to call.
*/
static struct pthread_info*
static struct pthread_info*
__mf_find_threadinfo ()
{
pthread_t it = pthread_self ();
......@@ -197,14 +197,14 @@ __mf_find_threadinfo ()
else for (i = 0; i < LIBMUDFLAPTH_THREADS_MAX; i++)
{
struct pthread_info* pi2 = & __mf_pthread_info [i];
if (pi2->used_p && pi2->self == it)
if (pi2->used_p && pi2->self == it)
{
*hash = i;
result = pi2;
break;
}
}
}
}
if (result == NULL)
{
......@@ -247,7 +247,7 @@ __mf_find_threadinfo ()
if (last != it)
{
/*
VERBOSE_TRACE ("found threadinfo for %u, slot %u\n",
VERBOSE_TRACE ("found threadinfo for %u, slot %u\n",
(unsigned) it,
(unsigned) *hash);
*/
......@@ -271,7 +271,7 @@ __mf_state_perthread ()
}
static void
static void
__mf_pthread_cleanup (void *arg)
{
struct pthread_info *pi = arg;
......@@ -302,11 +302,11 @@ __mf_pthread_spawner (void *arg)
pi->state = active;
VERBOSE_TRACE ("new user thread\n");
if (__mf_opts.heur_std_data)
{
pi->thread_errno = & errno;
__mf_register (pi->thread_errno, sizeof (int),
__mf_register (pi->thread_errno, sizeof (int),
__MF_TYPE_GUESS, "errno area (thread)");
/* NB: we could use __MF_TYPE_STATIC above, but we guess that
the thread errno is coming out of some dynamically allocated
......@@ -327,7 +327,7 @@ __mf_pthread_spawner (void *arg)
/* Signal the main thread to resume. */
psi->thread_info = pi;
result = (*user_fn)(user_arg);
}
......@@ -345,7 +345,7 @@ __mf_pthread_spawner (void *arg)
#if PIC
/* A special bootstrap variant. */
int
__mf_0fn_pthread_create (pthread_t *thr, const pthread_attr_t *attr,
__mf_0fn_pthread_create (pthread_t *thr, const pthread_attr_t *attr,
void * (*start) (void *), void *arg)
{
return -1;
......@@ -354,12 +354,12 @@ __mf_0fn_pthread_create (pthread_t *thr, const pthread_attr_t *attr,
#undef pthread_create
WRAPPER(int, pthread_create, pthread_t *thr, const pthread_attr_t *attr,
WRAPPER(int, pthread_create, pthread_t *thr, const pthread_attr_t *attr,
void * (*start) (void *), void *arg)
{
DECLARE(int, munmap, void *p, size_t l);
DECLARE(void *, mmap, void *p, size_t l, int prot, int flags, int fd, off_t of);
DECLARE(int, pthread_create, pthread_t *thr, const pthread_attr_t *attr,
DECLARE(int, pthread_create, pthread_t *thr, const pthread_attr_t *attr,
void * (*start) (void *), void *arg);
int result;
pthread_attr_t override_attr;
......@@ -383,7 +383,7 @@ WRAPPER(int, pthread_create, pthread_t *thr, const pthread_attr_t *attr,
/* VERBOSE_TRACE ("thread %u pi %p stack cleanup deferred (%u)\n",
(unsigned) pi->self, pi, pi->dead_p); */
/* Delay actual deallocation by a few cycles, try to discourage the
race mentioned at the end of __mf_pthread_spawner(). */
if (pi->dead_p)
......@@ -452,8 +452,8 @@ WRAPPER(int, pthread_create, pthread_t *thr, const pthread_attr_t *attr,
#endif
#ifdef MF_MAP_ANON
override_stack = CALL_REAL (mmap, NULL, override_stacksize,
PROT_READ|PROT_WRITE,
override_stack = CALL_REAL (mmap, NULL, override_stacksize,
PROT_READ|PROT_WRITE,
MAP_PRIVATE|MF_MAP_ANON,
0, 0);
#else
......@@ -465,8 +465,8 @@ WRAPPER(int, pthread_create, pthread_t *thr, const pthread_attr_t *attr,
if (zerofd == -1)
override_stack = MAP_FAILED;
else
override_stack = CALL_REAL (mmap, NULL, override_stacksize,
PROT_READ|PROT_WRITE,
override_stack = CALL_REAL (mmap, NULL, override_stacksize,
PROT_READ|PROT_WRITE,
MAP_PRIVATE, zerofd, 0);
}
#endif
......@@ -477,7 +477,7 @@ WRAPPER(int, pthread_create, pthread_t *thr, const pthread_attr_t *attr,
return -1;
}
VERBOSE_TRACE ("thread stack alloc %p size %lu\n",
VERBOSE_TRACE ("thread stack alloc %p size %lu\n",
override_stack, (unsigned long) override_stacksize);
/* Save the original allocated values for later deallocation. */
......@@ -492,10 +492,10 @@ WRAPPER(int, pthread_create, pthread_t *thr, const pthread_attr_t *attr,
override_stack = (void *)
(((uintptr_t) override_stack + override_stacksize - alignment - perturb)
& (~(uintptr_t)(alignment-1)));
/* XXX: consider using POSIX2K attr_setstack() */
if (pthread_attr_setstackaddr (& override_attr, override_stack) != 0 ||
pthread_attr_setstacksize (& override_attr,
pthread_attr_setstacksize (& override_attr,
override_stacksize - alignment - perturb) != 0)
{
/* This should not happen. */
......@@ -509,12 +509,12 @@ WRAPPER(int, pthread_create, pthread_t *thr, const pthread_attr_t *attr,
{
struct pthread_start_info psi;
struct pthread_info *pi = NULL;
/* Fill in startup-control fields. */
psi.user_fn = start;
psi.user_arg = arg;
psi.thread_info = NULL;
/* Actually create the thread. */
__mf_state = reentrant;
result = CALL_REAL (pthread_create, thr, & override_attr,
......@@ -529,7 +529,7 @@ WRAPPER(int, pthread_create, pthread_t *thr, const pthread_attr_t *attr,
{
volatile struct pthread_start_info *psip = & psi;
pi = psip->thread_info;
if (pi != NULL)
if (pi != NULL)
break;
sched_yield ();
}
......@@ -574,7 +574,7 @@ WRAPPER(int, pthread_join, pthread_t thr, void **rc)
__mf_state = reentrant;
result = CALL_REAL (pthread_join, thr, rc);
__mf_state = active;
return result;
}
......
/* Implementation header for mudflap runtime library.
Mudflap: narrow-pointer bounds-checking by tree rewriting.
Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
Contributed by Frank Ch. Eigler <fche@redhat.com>
Mudflap: narrow-pointer bounds-checking by tree rewriting.
Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
Contributed by Frank Ch. Eigler <fche@redhat.com>
and Graydon Hoare <graydon@redhat.com>
This file is part of GCC.
GCC is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
Software Foundation; either version 2, or (at your option) any later
version.
In addition to the permissions in the GNU General Public License, the
Free Software Foundation gives you unlimited permission to link the
compiled version of this file into combinations with other programs,
......@@ -19,12 +19,12 @@ from the use of this file. (The General Public License restrictions
do apply in other respects; for example, they cover modification of
the file, and distribution when not linked into a combine
executable.)
GCC is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with GCC; see the file COPYING. If not, write to the Free
Software Foundation, 59 Temple Place - Suite 330, Boston, MA
......@@ -82,10 +82,10 @@ typedef __mf_uintptr_t uintptr_t;
/* Private functions. */
/* Private functions. */
extern void __mf_violation (void *ptr, size_t sz,
uintptr_t pc, const char *location,
extern void __mf_violation (void *ptr, size_t sz,
uintptr_t pc, const char *location,
int type);
extern size_t __mf_backtrace (char ***, void *, unsigned);
extern int __mf_heuristic_check (uintptr_t, uintptr_t);
......@@ -96,7 +96,7 @@ extern int __mf_heuristic_check (uintptr_t, uintptr_t);
/* The mf_state type codes describe recursion and initialization order. */
enum __mf_state_enum { active, reentrant };
enum __mf_state_enum { active, reentrant };
/* The __mf_options structure records optional or tunable aspects of the
mudflap library's behavior. There is a single global instance of this
......@@ -124,10 +124,10 @@ struct __mf_options
unsigned adapt_cache;
/* Print list of leaked heap objects on shutdown. */
unsigned print_leaks;
unsigned print_leaks;
/* Detect reads of uninitialized objects. */
unsigned check_initialization;
unsigned check_initialization;
/* Print verbose description of violations. */
unsigned verbose_violations;
......@@ -142,7 +142,7 @@ struct __mf_options
unsigned wipe_stack;
unsigned wipe_heap;
/* Maintain a queue of this many deferred free()s,
/* Maintain a queue of this many deferred free()s,
to trap use of freed memory. */
unsigned free_queue_length;
......@@ -179,7 +179,7 @@ struct __mf_options
/* How to handle a violation. */
enum
{
viol_nop, /* Return control to application. */
viol_nop, /* Return control to application. */
viol_segv, /* Signal self with segv. */
viol_abort, /* Call abort (). */
viol_gdb /* Fork a debugger on self */
......@@ -208,11 +208,11 @@ struct __mf_dynamic_entry
/* The definition of the array (mf-runtime.c) must match the enums! */
extern struct __mf_dynamic_entry __mf_dynamic[];
enum __mf_dynamic_index
{
{
dyn_calloc, dyn_free, dyn_malloc, dyn_mmap,
dyn_munmap, dyn_realloc,
dyn_munmap, dyn_realloc,
dyn_INITRESOLVE, /* Marker for last init-time resolution. */
#ifdef LIBMUDFLAPTH
#ifdef LIBMUDFLAPTH
dyn_pthread_create,
dyn_pthread_join,
dyn_pthread_exit
......@@ -242,7 +242,7 @@ extern pthread_mutex_t __mf_biglock;
#ifdef LIBMUDFLAPTH
extern enum __mf_state_enum *__mf_state_perthread ();
#define __mf_state (* __mf_state_perthread ())
#else
#else
extern enum __mf_state_enum __mf_state;
#endif
extern int __mf_starting_p;
......@@ -285,7 +285,7 @@ extern struct __mf_options __mf_opts;
#define __MF_PERSIST_MAX 256
#define __MF_FREEQ_MAX 256
/*
/*
Wrapping and redirection:
Mudflap redirects a number of libc functions into itself, for "cheap"
......@@ -293,7 +293,7 @@ extern struct __mf_options __mf_opts;
unregister regions of memory as they are manipulated by the program
(eg. malloc/free, mmap/munmap).
There are two methods of wrapping.
There are two methods of wrapping.
(1) The static method involves a list of -wrap=foo flags being passed to
the linker, which then links references to "foo" to the symbol
......
......@@ -51,7 +51,7 @@ extern "C" {
extern void __mf_check (void *ptr, __mf_size_t sz, int type, const char *location)
__attribute((nothrow));
extern void __mf_register (void *ptr, __mf_size_t sz, int type, const char *name)
extern void __mf_register (void *ptr, __mf_size_t sz, int type, const char *name)
__attribute((nothrow));
extern void __mf_unregister (void *ptr, __mf_size_t sz, int type)
__attribute((nothrow));
......@@ -65,33 +65,33 @@ extern int __mf_set_options (const char *opts);
done by simple #define rather than linker wrapping, since only
instrumented modules are meant to be affected. */
#ifdef _MUDFLAP
#pragma redefine_extname memcpy __mfwrap_memcpy
#ifdef _MUDFLAP
#pragma redefine_extname memcpy __mfwrap_memcpy
#pragma redefine_extname memmove __mfwrap_memmove
#pragma redefine_extname memset __mfwrap_memset
#pragma redefine_extname memcmp __mfwrap_memcmp
#pragma redefine_extname memchr __mfwrap_memchr
#pragma redefine_extname memset __mfwrap_memset
#pragma redefine_extname memcmp __mfwrap_memcmp
#pragma redefine_extname memchr __mfwrap_memchr
#pragma redefine_extname memrchr __mfwrap_memrchr
#pragma redefine_extname strcpy __mfwrap_strcpy
#pragma redefine_extname strncpy __mfwrap_strncpy
#pragma redefine_extname strcat __mfwrap_strcat
#pragma redefine_extname strcpy __mfwrap_strcpy
#pragma redefine_extname strncpy __mfwrap_strncpy
#pragma redefine_extname strcat __mfwrap_strcat
#pragma redefine_extname strncat __mfwrap_strncat
#pragma redefine_extname strcmp __mfwrap_strcmp
#pragma redefine_extname strcasecmp __mfwrap_strcasecmp
#pragma redefine_extname strncmp __mfwrap_strncmp
#pragma redefine_extname strcmp __mfwrap_strcmp
#pragma redefine_extname strcasecmp __mfwrap_strcasecmp
#pragma redefine_extname strncmp __mfwrap_strncmp
#pragma redefine_extname strncasecmp __mfwrap_strncasecmp
#pragma redefine_extname strdup __mfwrap_strdup
#pragma redefine_extname strndup __mfwrap_strndup
#pragma redefine_extname strchr __mfwrap_strchr
#pragma redefine_extname strdup __mfwrap_strdup
#pragma redefine_extname strndup __mfwrap_strndup
#pragma redefine_extname strchr __mfwrap_strchr
#pragma redefine_extname strrchr __mfwrap_strrchr
#pragma redefine_extname strstr __mfwrap_strstr
#pragma redefine_extname memmem __mfwrap_memmem
#pragma redefine_extname strlen __mfwrap_strlen
#pragma redefine_extname strstr __mfwrap_strstr
#pragma redefine_extname memmem __mfwrap_memmem
#pragma redefine_extname strlen __mfwrap_strlen
#pragma redefine_extname strnlen __mfwrap_strnlen
#pragma redefine_extname bzero __mfwrap_bzero
#pragma redefine_extname bcopy __mfwrap_bcopy
#pragma redefine_extname bcmp __mfwrap_bcmp
#pragma redefine_extname index __mfwrap_index
#pragma redefine_extname bzero __mfwrap_bzero
#pragma redefine_extname bcopy __mfwrap_bcopy
#pragma redefine_extname bcmp __mfwrap_bcmp
#pragma redefine_extname index __mfwrap_index
#pragma redefine_extname rindex __mfwrap_rindex
#pragma redefine_extname asctime __mfwrap_asctime
#pragma redefine_extname ctime __mfwrap_ctime
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment