xmalloc.c revision 60573
1/* 2 * Author: Tatu Ylonen <ylo@cs.hut.fi> 3 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 4 * All rights reserved 5 * Created: Mon Mar 20 21:23:10 1995 ylo 6 * Versions of malloc and friends that check their results, and never return 7 * failure (they call fatal if they encounter an error). 8 */ 9 10#include "includes.h" 11RCSID("$Id: xmalloc.c,v 1.6 2000/04/14 10:30:34 markus Exp $"); 12 13#include "ssh.h" 14 15void * 16xmalloc(size_t size) 17{ 18 void *ptr = malloc(size); 19 if (ptr == NULL) 20 fatal("xmalloc: out of memory (allocating %d bytes)", (int) size); 21 return ptr; 22} 23 24void * 25xrealloc(void *ptr, size_t new_size) 26{ 27 void *new_ptr; 28 29 if (ptr == NULL) 30 fatal("xrealloc: NULL pointer given as argument"); 31 new_ptr = realloc(ptr, new_size); 32 if (new_ptr == NULL) 33 fatal("xrealloc: out of memory (new_size %d bytes)", (int) new_size); 34 return new_ptr; 35} 36 37void 38xfree(void *ptr) 39{ 40 if (ptr == NULL) 41 fatal("xfree: NULL pointer given as argument"); 42 free(ptr); 43} 44 45char * 46xstrdup(const char *str) 47{ 48 int len = strlen(str) + 1; 49 50 char *cp = xmalloc(len); 51 strlcpy(cp, str, len); 52 return cp; 53} 54