#ifndef MEM_H #define MEM_H #include #include #include #define MALLOC(s) xmalloc((s), __FILE__, __LINE__) #define CALLOC(n, s) xcalloc((n), (s), __FILE__, __LINE__) #define REALLOC(p, s) xrealloc((p), (s), __FILE__, __LINE__) static inline void *xmalloc(size_t s, const char *file, int line) { void *p; if (!(p = malloc(s))) { syslog(LOG_ERR, "malloc: %s (line %d)", file, line); exit(1); } return p; } static inline void *xcalloc(size_t n, size_t s, const char *file, int line) { void *p; if (!(p = calloc(n, s))) { syslog(LOG_ERR, "calloc: %s (line %d)", file, line); exit(1); } return p; } static inline void *xrealloc(void *ptr, size_t s, const char *file, int line) { void *p; if (!(p = realloc(ptr, s))) { syslog(LOG_ERR, "realloc: %s (line %d)", file, line); exit(1); } return p; } #endif /* MEM_H */