Include stdio.h for fprintf.
[tinc] / lib / xmalloc.c
index 204469f..38fb571 100644 (file)
@@ -20,6 +20,7 @@
 #endif
 
 #include <sys/types.h>
+#include <stdio.h>
 
 #if STDC_HEADERS
 # include <stdlib.h>
@@ -39,7 +40,6 @@ void free ();
 #endif
 #define N_(Text) Text
 
-#include "error.h"
 #include "xalloc.h"
 
 #ifndef EXIT_FAILURE
@@ -54,11 +54,11 @@ void *xrealloc (void *p, size_t n);
 #endif
 
 #ifndef HAVE_DONE_WORKING_MALLOC_CHECK
-you must run the autoconf test for a properly working malloc -- see malloc.m4
+#error you must run the autoconf test for a properly working malloc -- see malloc.m4
 #endif
 
 #ifndef HAVE_DONE_WORKING_REALLOC_CHECK
-you must run the autoconf test for a properly working realloc -- see realloc.m4
+#error you must run the autoconf test for a properly working realloc -- see realloc.m4
 #endif
 
 /* Exit value when the requested amount of memory is not available.
@@ -69,20 +69,15 @@ int xalloc_exit_failure = EXIT_FAILURE;
 char *const xalloc_msg_memory_exhausted = N_("Memory exhausted");
 
 /* FIXME: describe */
-void (*xalloc_fail_func) () = 0;
-
-#if __STDC__ && (HAVE_VPRINTF || HAVE_DOPRNT)
-void error (int, int, const char *, ...);
-#else
-void error ();
-#endif
+void (*xalloc_fail_func) (int) = 0;
 
 static void
-xalloc_fail ()
+xalloc_fail (int size)
 {
   if (xalloc_fail_func)
-    (*xalloc_fail_func) ();
-  error (xalloc_exit_failure, 0, xalloc_msg_memory_exhausted);
+    (*xalloc_fail_func) (size);
+  fprintf(stderr, "%s\n", xalloc_msg_memory_exhausted);
+  exit(xalloc_exit_failure);
 }
 
 /* Allocate N bytes of memory dynamically, with error checking.  */
@@ -92,10 +87,12 @@ xmalloc (n)
      size_t n;
 {
   void *p;
+  extern char*cp_file;
+  extern int cp_line;
 
   p = malloc (n);
   if (p == 0)
-    xalloc_fail ();
+    xalloc_fail ((int)n);
   return p;
 }
 
@@ -110,7 +107,7 @@ xrealloc (p, n)
 {
   p = realloc (p, n);
   if (p == 0)
-    xalloc_fail ();
+    xalloc_fail (n);
   return p;
 }