From d4a8b7e34dd619a4debf9a206c81db26d1402ea6 Mon Sep 17 00:00:00 2001 From: Damien Miller Date: Wed, 27 Oct 1999 13:42:43 +1000 Subject: Initial revision --- xmalloc.c | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 xmalloc.c (limited to 'xmalloc.c') diff --git a/xmalloc.c b/xmalloc.c new file mode 100644 index 000000000..b536f9d19 --- /dev/null +++ b/xmalloc.c @@ -0,0 +1,56 @@ +/* + +xmalloc.c + +Author: Tatu Ylonen + +Copyright (c) 1995 Tatu Ylonen , Espoo, Finland + All rights reserved + +Created: Mon Mar 20 21:23:10 1995 ylo + +Versions of malloc and friends that check their results, and never return +failure (they call fatal if they encounter an error). + +*/ + +#include "includes.h" +RCSID("$Id: xmalloc.c,v 1.1 1999/10/27 03:42:46 damien Exp $"); + +#include "ssh.h" + +void *xmalloc(size_t size) +{ + void *ptr = malloc(size); + if (ptr == NULL) + fatal("xmalloc: out of memory (allocating %d bytes)", (int)size); + return ptr; +} + +void *xrealloc(void *ptr, size_t new_size) +{ + void *new_ptr; + + if (ptr == NULL) + fatal("xrealloc: NULL pointer given as argument"); + new_ptr = realloc(ptr, new_size); + if (new_ptr == NULL) + fatal("xrealloc: out of memory (new_size %d bytes)", (int)new_size); + return new_ptr; +} + +void xfree(void *ptr) +{ + if (ptr == NULL) + fatal("xfree: NULL pointer given as argument"); + free(ptr); +} + +char *xstrdup(const char *str) +{ + int len = strlen(str) + 1; + + char *cp = xmalloc(len); + strlcpy(cp, str, len); + return cp; +} -- cgit v1.2.3