| 1 | /*
 | 
|---|
| 2 |  * $Id: ufortify.h 1077 2008-07-18 18:11:54Z stevenhl $
 | 
|---|
| 3 |  *
 | 
|---|
| 4 |  * FILE:
 | 
|---|
| 5 |  *   ufortify.h
 | 
|---|
| 6 |  *
 | 
|---|
| 7 |  * DESCRIPTION:
 | 
|---|
| 8 |  *   User options for fortify. Changes to this file require fortify.c to be
 | 
|---|
| 9 |  * recompiled, but nothing else.
 | 
|---|
| 10 |  */
 | 
|---|
| 11 | 
 | 
|---|
| 12 |  /* 18 Jul 08 SHL Add FORTIFY_VERBOSE_SCOPE_ENTER_EXIT
 | 
|---|
| 13 |  */
 | 
|---|
| 14 | 
 | 
|---|
| 15 | // 28 Jan 08 SHL
 | 
|---|
| 16 | #define FORTIFY_STORAGE _export         /* storage for public functions   */
 | 
|---|
| 17 | 
 | 
|---|
| 18 | #define FORTIFY_ALIGNMENT        sizeof(double) /* Byte alignment of all memory blocks */
 | 
|---|
| 19 | 
 | 
|---|
| 20 | #define FORTIFY_BEFORE_SIZE      32  /* Bytes to allocate before block */
 | 
|---|
| 21 | #define FORTIFY_BEFORE_VALUE   0xA3  /* Fill value before block        */
 | 
|---|
| 22 | 
 | 
|---|
| 23 | #define FORTIFY_AFTER_SIZE       32  /* Bytes to allocate after block  */
 | 
|---|
| 24 | #define FORTIFY_AFTER_VALUE    0xA5  /* Fill value after block         */
 | 
|---|
| 25 | 
 | 
|---|
| 26 | #define FORTIFY_FILL_ON_ALLOCATE               /* Nuke out malloc'd memory       */
 | 
|---|
| 27 | #define FORTIFY_FILL_ON_ALLOCATE_VALUE   0xA7  /* Value to initialize with       */
 | 
|---|
| 28 | 
 | 
|---|
| 29 | #define FORTIFY_FILL_ON_DEALLOCATE             /* free'd memory is cleared       */
 | 
|---|
| 30 | #define FORTIFY_FILL_ON_DEALLOCATE_VALUE 0xA9  /* Value to de-initialize with    */
 | 
|---|
| 31 | 
 | 
|---|
| 32 | #define FORTIFY_FILL_ON_CORRUPTION             /* Nuke out corrupted memory    */
 | 
|---|
| 33 | 
 | 
|---|
| 34 | /* #define FORTIFY_CHECK_ALL_MEMORY_ON_ALLOCATE */
 | 
|---|
| 35 | /* #define FORTIFY_CHECK_ALL_MEMORY_ON_DEALLOCATE */
 | 
|---|
| 36 | #define FORTIFY_PARANOID_DEALLOCATE
 | 
|---|
| 37 | 
 | 
|---|
| 38 | /* #define FORTIFY_WARN_ON_ZERO_MALLOC */ /* A debug is issued on a malloc(0) */
 | 
|---|
| 39 | /* #define FORTIFY_FAIL_ON_ZERO_MALLOC */ /* A malloc(0) will fail            */
 | 
|---|
| 40 | 
 | 
|---|
| 41 | #define FORTIFY_WARN_ON_ALLOCATE_FAIL    /* A debug is issued on a failed alloc  */
 | 
|---|
| 42 | #define FORTIFY_WARN_ON_FALSE_FAIL       /* See Fortify_SetAllocateFailRate      */
 | 
|---|
| 43 | #define FORTIFY_WARN_ON_SIZE_T_OVERFLOW  /* Watch for breaking the 64K limit in  */
 | 
|---|
| 44 |                                          /* some braindead architectures...      */
 | 
|---|
| 45 | 
 | 
|---|
| 46 | #define FORTIFY_TRACK_DEALLOCATED_MEMORY
 | 
|---|
| 47 | #define FORTIFY_DEALLOCATED_MEMORY_LIMIT 1048576 /* Maximum amount of deallocated bytes to keep */
 | 
|---|
| 48 | /* #define FORTIFY_WARN_WHEN_DISCARDING_DEALLOCATED_MEMORY */
 | 
|---|
| 49 | /* #define FORTIFY_VERBOSE_WARN_WHEN_DISCARDING_DEALLOCATED_MEMORY */
 | 
|---|
| 50 | #define FORTIFY_VERBOSE_SCOPE_ENTER_EXIT        /* Log all scope entry and exit */
 | 
|---|
| 51 | 
 | 
|---|
| 52 | /* #define FORTIFY_NO_PERCENT_P */       /* sprintf() doesn't support %p */
 | 
|---|
| 53 | #define FORTIFY_STRDUP              /* if you use non-ANSI strdup() */
 | 
|---|
| 54 | 
 | 
|---|
| 55 | // #include "_malloc.h"
 | 
|---|
| 56 | #ifdef __cplusplus
 | 
|---|
| 57 | extern "C" {
 | 
|---|
| 58 | #endif
 | 
|---|
| 59 | #ifdef __BORLANDC__
 | 
|---|
| 60 | // See bc20\source\rtl\rtlinc\_malloc.h
 | 
|---|
| 61 | void _RTLENTRY _EXPFUNC _lock_heap  (void);
 | 
|---|
| 62 | void _RTLENTRY _EXPFUNC _unlock_heap(void);
 | 
|---|
| 63 | #endif
 | 
|---|
| 64 | 
 | 
|---|
| 65 | #ifdef __WATCOMC__
 | 
|---|
| 66 | // 05 May 08 SHL
 | 
|---|
| 67 | // J:\sla_dev2\ow.dev\bld\clib\h\heapacc.h
 | 
|---|
| 68 | extern void         (*_AccessNHeap)( void );
 | 
|---|
| 69 | extern void         (*_ReleaseNHeap)( void );
 | 
|---|
| 70 | #endif
 | 
|---|
| 71 | #ifdef __cplusplus
 | 
|---|
| 72 | }
 | 
|---|
| 73 | #endif
 | 
|---|
| 74 | 
 | 
|---|
| 75 | #ifdef __BORLANDC__
 | 
|---|
| 76 | #define FORTIFY_LOCK()  _lock_heap()    // 28 Jan 08 SHL
 | 
|---|
| 77 | #define FORTIFY_UNLOCK() _unlock_heap() // 28 Jan 08 SHL
 | 
|---|
| 78 | #endif
 | 
|---|
| 79 | #ifdef __WATCOMC__
 | 
|---|
| 80 | #define FORTIFY_LOCK()  _AccessNHeap()  // 05 May 08 SHL
 | 
|---|
| 81 | #define FORTIFY_UNLOCK() _ReleaseNHeap()        // 05 May 08 SHL
 | 
|---|
| 82 | #endif
 | 
|---|
| 83 | 
 | 
|---|
| 84 | #define FORTIFY_DELETE_STACK_SIZE    256
 | 
|---|
| 85 | 
 | 
|---|
| 86 | #ifdef __cplusplus                /* C++ only options go here */
 | 
|---|
| 87 | 
 | 
|---|
| 88 | /*    #define FORTIFY_PROVIDE_ARRAY_NEW     */
 | 
|---|
| 89 | /*    #define FORTIFY_PROVIDE_ARRAY_DELETE  */
 | 
|---|
| 90 | 
 | 
|---|
| 91 | /*    #define FORTIFY_AUTOMATIC_LOG_FILE */
 | 
|---|
| 92 |     #define FORTIFY_LOG_FILENAME            "fortify.log"
 | 
|---|
| 93 |     #include <iostream.h>
 | 
|---|
| 94 |     #define FORTIFY_FIRST_ERROR_FUNCTION    cout << "\a\a\aFortify Hit Generated!\n"
 | 
|---|
| 95 | 
 | 
|---|
| 96 | #endif /* __cplusplus */
 | 
|---|