diff options
Diffstat (limited to 'libntp/emalloc.c')
-rw-r--r-- | libntp/emalloc.c | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/libntp/emalloc.c b/libntp/emalloc.c new file mode 100644 index 000000000000..2fe4c386217e --- /dev/null +++ b/libntp/emalloc.c @@ -0,0 +1,48 @@ +/* + * emalloc - return new memory obtained from the system. Belch if none. + */ +#include "ntp_types.h" +#include "ntp_malloc.h" +#include "ntp_syslog.h" +#include "ntp_stdlib.h" + +#if defined SYS_WINNT && defined DEBUG +#include <crtdbg.h> +#endif + +#if defined SYS_WINNT && defined DEBUG + +void * +debug_emalloc( + u_int size, + char *filename, + int line + ) +{ + char *mem; + + if ((mem = (char *)_malloc_dbg(size, _NORMAL_BLOCK, filename, line)) == 0) { + msyslog(LOG_ERR, "Exiting: No more memory!"); + exit(1); + } + return mem; +} + +#else + +void * +emalloc( + u_int size + ) +{ + char *mem; + + if ((mem = (char *)malloc(size)) == 0) { + msyslog(LOG_ERR, "Exiting: No more memory!"); + exit(1); + } + return mem; +} + + +#endif |