+/* $OpenBSD: xmalloc.h,v 1.13 2006/08/03 03:34:42 deraadt Exp $ */
+
/*
* Author: Tatu Ylonen <ylo@cs.hut.fi>
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
* called by a name other than "ssh" or "Secure Shell".
*/
-/* RCSID("$OpenBSD: xmalloc.h,v 1.6 2001/06/26 06:33:07 itojun Exp $"); */
-
-#ifndef XMALLOC_H
-#define XMALLOC_H
-
-/* Like malloc, but calls fatal() if out of memory. */
-void *xmalloc(size_t);
-
-/* Like realloc, but calls fatal() if out of memory. */
-void *xrealloc(void *, size_t);
-
-/* Frees memory allocated using xmalloc or xrealloc. */
-void xfree(void *);
-
-/* Allocates memory using xmalloc, and copies the string into that memory. */
-char *xstrdup(const char *);
-
-#endif /* XMALLOC_H */
+void *xmalloc(size_t);
+void *xcalloc(size_t, size_t);
+void *xrealloc(void *, size_t, size_t);
+void xfree(void *);
+char *xstrdup(const char *);
+int xasprintf(char **, const char *, ...)
+ __attribute__((__format__ (printf, 2, 3)))
+ __attribute__((__nonnull__ (2)));