Annotation of src/usr.bin/ssh/xmalloc.c, Revision 1.7
1.1 deraadt 1: /*
1.5 deraadt 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: */
1.1 deraadt 9:
10: #include "includes.h"
1.7 ! markus 11: RCSID("$OpenBSD: xmalloc.c,v 1.6 2000/04/14 10:30:34 markus Exp $");
1.1 deraadt 12:
13: #include "ssh.h"
14:
1.4 markus 15: void *
16: xmalloc(size_t size)
1.1 deraadt 17: {
1.4 markus 18: void *ptr = malloc(size);
19: if (ptr == NULL)
20: fatal("xmalloc: out of memory (allocating %d bytes)", (int) size);
21: return ptr;
1.1 deraadt 22: }
23:
1.4 markus 24: void *
25: xrealloc(void *ptr, size_t new_size)
1.1 deraadt 26: {
1.4 markus 27: void *new_ptr;
1.1 deraadt 28:
1.4 markus 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;
1.1 deraadt 35: }
36:
1.6 markus 37: void
1.4 markus 38: xfree(void *ptr)
1.1 deraadt 39: {
1.4 markus 40: if (ptr == NULL)
41: fatal("xfree: NULL pointer given as argument");
42: free(ptr);
1.1 deraadt 43: }
44:
1.4 markus 45: char *
46: xstrdup(const char *str)
1.1 deraadt 47: {
1.4 markus 48: int len = strlen(str) + 1;
1.2 deraadt 49:
1.4 markus 50: char *cp = xmalloc(len);
51: strlcpy(cp, str, len);
52: return cp;
1.1 deraadt 53: }