Annotation of embedaddon/ntp/include/ssl_applink.c, revision 1.1
1.1 ! misho 1: /*
! 2: * include/ssl_applink.c -- common NTP code for openssl/applink.c
! 3: *
! 4: * Each program which uses OpenSSL should include this file in _one_
! 5: * of its source files and call ssl_applink() before any OpenSSL
! 6: * functions.
! 7: */
! 8:
! 9: #if defined(OPENSSL) && defined(SYS_WINNT)
! 10: # ifdef _MSC_VER
! 11: # pragma warning(push)
! 12: # pragma warning(disable: 4152)
! 13: # endif
! 14: # include <openssl/applink.c>
! 15: # ifdef _MSC_VER
! 16: # pragma warning(pop)
! 17: # endif
! 18: #endif
! 19:
! 20: #if defined(OPENSSL) && defined(_MSC_VER) && defined(_DEBUG)
! 21: #define WRAP_DBG_MALLOC
! 22: #endif
! 23:
! 24: #ifdef WRAP_DBG_MALLOC
! 25: void *wrap_dbg_malloc(size_t s, const char *f, int l);
! 26: void *wrap_dbg_realloc(void *p, size_t s, const char *f, int l);
! 27: void wrap_dbg_free(void *p);
! 28: #endif
! 29:
! 30:
! 31: #if defined(OPENSSL) && defined(SYS_WINNT)
! 32: void ssl_applink(void);
! 33:
! 34: void
! 35: ssl_applink(void)
! 36: {
! 37: #ifdef WRAP_DBG_MALLOC
! 38: CRYPTO_set_mem_ex_functions(wrap_dbg_malloc, wrap_dbg_realloc, wrap_dbg_free);
! 39: #else
! 40: CRYPTO_malloc_init();
! 41: #endif
! 42: }
! 43: #else /* !OPENSSL || !SYS_WINNT */
! 44: #define ssl_applink() do {} while (0)
! 45: #endif
! 46:
! 47:
! 48: #ifdef WRAP_DBG_MALLOC
! 49: /*
! 50: * OpenSSL malloc overriding uses different parameters
! 51: * for DEBUG malloc/realloc/free (lacking block type).
! 52: * Simple wrappers convert.
! 53: */
! 54: void *wrap_dbg_malloc(size_t s, const char *f, int l)
! 55: {
! 56: void *ret;
! 57:
! 58: ret = _malloc_dbg(s, _NORMAL_BLOCK, f, l);
! 59: return ret;
! 60: }
! 61:
! 62: void *wrap_dbg_realloc(void *p, size_t s, const char *f, int l)
! 63: {
! 64: void *ret;
! 65:
! 66: ret = _realloc_dbg(p, s, _NORMAL_BLOCK, f, l);
! 67: return ret;
! 68: }
! 69:
! 70: void wrap_dbg_free(void *p)
! 71: {
! 72: _free_dbg(p, _NORMAL_BLOCK);
! 73: }
! 74: #endif /* WRAP_DBG_MALLOC */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>