diff options
author | damien <damien> | 1999-10-27 03:42:43 +0000 |
---|---|---|
committer | damien <damien> | 1999-10-27 03:42:43 +0000 |
commit | adb73f9312ff25640effcb17872665ac44e6f2a4 (patch) | |
tree | a47d770a2f790f40d18b0982d4e55fa7cfb1fa3b /xmalloc.c | |
download | openssh-adb73f9312ff25640effcb17872665ac44e6f2a4.tar.gz |
Initial revision
Diffstat (limited to 'xmalloc.c')
-rw-r--r-- | xmalloc.c | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/xmalloc.c b/xmalloc.c new file mode 100644 index 00000000..b536f9d1 --- /dev/null +++ b/xmalloc.c @@ -0,0 +1,56 @@ +/* + +xmalloc.c + +Author: Tatu Ylonen <ylo@cs.hut.fi> + +Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, 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; +} |