(checkhdr): Disable mcheck before reporting an error. Don't run any tests if mcheck is disabled.

This commit is contained in:
Ulrich Drepper 2001-07-27 05:01:11 +00:00
parent 52d38e0e40
commit adef37445c
1 changed files with 13 additions and 3 deletions

View File

@ -55,6 +55,8 @@ struct hdr
It is only constructed if the pedantic testing is requested. */
static struct hdr *root;
static int mcheck_used;
/* Nonzero if pedentic checking of all blocks is requested. */
static int pedantic;
@ -81,6 +83,12 @@ checkhdr (hdr)
const struct hdr *hdr;
{
enum mcheck_status status;
if (!mcheck_used)
/* Maybe the mcheck used is disabled? This happens when we find
an error and report it. */
return MCHECK_OK;
switch (hdr->magic ^ ((uintptr_t) hdr->prev + (uintptr_t) hdr->next))
{
default:
@ -97,7 +105,11 @@ checkhdr (hdr)
break;
}
if (status != MCHECK_OK)
(*abortfunc) (status);
{
mcheck_used = 0;
(*abortfunc) (status);
mcheck_used = 1;
}
return status;
}
@ -302,8 +314,6 @@ mabort (status)
#endif
}
static int mcheck_used;
int
mcheck (func)
void (*func) __P ((enum mcheck_status));