blob: fb29a62e900f8346554b813fcd90e69671ec0efc [file] [log] [blame]
Damien Millerd4a8b7e1999-10-27 13:42:43 +10001/*
Damien Miller95def091999-11-25 00:26:21 +11002 * 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 */
Damien Millerd4a8b7e1999-10-27 13:42:43 +10009
10#include "includes.h"
Damien Miller4af51302000-04-16 11:18:38 +100011RCSID("$Id: xmalloc.c,v 1.3 2000/04/16 01:18:49 damien Exp $");
Damien Millerd4a8b7e1999-10-27 13:42:43 +100012
13#include "ssh.h"
14
Damien Miller95def091999-11-25 00:26:21 +110015void *
16xmalloc(size_t size)
Damien Millerd4a8b7e1999-10-27 13:42:43 +100017{
Damien Miller95def091999-11-25 00:26:21 +110018 void *ptr = malloc(size);
19 if (ptr == NULL)
20 fatal("xmalloc: out of memory (allocating %d bytes)", (int) size);
21 return ptr;
Damien Millerd4a8b7e1999-10-27 13:42:43 +100022}
23
Damien Miller95def091999-11-25 00:26:21 +110024void *
25xrealloc(void *ptr, size_t new_size)
Damien Millerd4a8b7e1999-10-27 13:42:43 +100026{
Damien Miller95def091999-11-25 00:26:21 +110027 void *new_ptr;
Damien Millerd4a8b7e1999-10-27 13:42:43 +100028
Damien Miller95def091999-11-25 00:26:21 +110029 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;
Damien Millerd4a8b7e1999-10-27 13:42:43 +100035}
36
Damien Miller4af51302000-04-16 11:18:38 +100037void
Damien Miller95def091999-11-25 00:26:21 +110038xfree(void *ptr)
Damien Millerd4a8b7e1999-10-27 13:42:43 +100039{
Damien Miller95def091999-11-25 00:26:21 +110040 if (ptr == NULL)
41 fatal("xfree: NULL pointer given as argument");
42 free(ptr);
Damien Millerd4a8b7e1999-10-27 13:42:43 +100043}
44
Damien Miller95def091999-11-25 00:26:21 +110045char *
46xstrdup(const char *str)
Damien Millerd4a8b7e1999-10-27 13:42:43 +100047{
Damien Miller95def091999-11-25 00:26:21 +110048 int len = strlen(str) + 1;
Damien Millerd4a8b7e1999-10-27 13:42:43 +100049
Damien Miller95def091999-11-25 00:26:21 +110050 char *cp = xmalloc(len);
51 strlcpy(cp, str, len);
52 return cp;
Damien Millerd4a8b7e1999-10-27 13:42:43 +100053}