int _sanity(const char *filename, uint lineno) { reg1 struct st_irem *irem; reg2 int flag=0; uint count=0; pthread_mutex_lock(&THR_LOCK_malloc); #ifndef PEDANTIC_SAFEMALLOC if (sf_malloc_tampered && (int) sf_malloc_count < 0) sf_malloc_count=0; #endif count=sf_malloc_count; for (irem= sf_malloc_root; irem != NULL && count-- ; irem= irem->next) flag+= _checkchunk (irem, filename, lineno); pthread_mutex_unlock(&THR_LOCK_malloc); if (count || irem) { const char *format="Error: Safemalloc link list destroyed, discovered at '%s:%d'"; fprintf(stderr, format, filename, lineno); fputc('\n',stderr); fprintf(stderr, "root=%p,count=%d,irem=%p\n", sf_malloc_root,count,irem); (void) fflush(stderr); DBUG_PRINT("safe",(format, filename, lineno)); flag=1; } return flag; } /* _sanity */
int _sanity (const char *sFile, uint uLine) { reg1 struct remember *pTmp; reg2 int flag=0; uint count=0; pthread_mutex_lock(&THR_LOCK_malloc); count=cNewCount; for (pTmp = pRememberRoot; pTmp != NULL && count-- ; pTmp = pTmp -> pNext) flag+=_checkchunk (pTmp, sFile, uLine); pthread_mutex_unlock(&THR_LOCK_malloc); if (count || pTmp) { const char *format="Safemalloc link list destroyed, discovered at '%s:%d'"; fprintf (stderr, format, sFile, uLine); fputc('\n',stderr); (void) fflush(stderr); DBUG_PRINT("safe",(format, sFile, uLine)); flag=1; } return flag; } /* _sanity */