OpenDNSSEC-enforcer
1.3.9
Main Page
Data Structures
Files
File List
Globals
enforcer
ksm
memory.c
Go to the documentation of this file.
1
/*
2
* $Id: memory.c 763 2009-05-22 13:03:15Z sion $
3
*
4
* Copyright (c) 2008-2009 Nominet UK. All rights reserved.
5
*
6
* Redistribution and use in source and binary forms, with or without
7
* modification, are permitted provided that the following conditions
8
* are met:
9
* 1. Redistributions of source code must retain the above copyright
10
* notice, this list of conditions and the following disclaimer.
11
* 2. Redistributions in binary form must reproduce the above copyright
12
* notice, this list of conditions and the following disclaimer in the
13
* documentation and/or other materials provided with the distribution.
14
*
15
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
16
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
19
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
21
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
22
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
23
* IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
24
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
25
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
*
27
*/
28
29
/*+
30
* Filename: memory.c
31
*
32
* Description:
33
* Wrappers around memory allocation routines. If any fail,
34
* the program will write a memory exhaustion error to stderr
35
* and terminate.
36
-*/
37
38
#include <stdio.h>
39
#include <stdlib.h>
40
41
#include "
ksm/memory.h
"
42
#include "
ksm/ksmdef.h
"
43
#include "
ksm/message.h
"
44
45
/*+
46
* MemMalloc - Allocate Memory
47
* MemCalloc - Allocate Contiguous Memory
48
* MemRealloc - Reallocate Memory
49
*
50
* Description:
51
* Wrapper routines around the Unix memory allocation routines. If
52
* an allocation routine returns null, an error is logged and the
53
* program exits.
54
*
55
* MemFree is also defined, but as a macro to allow the passed element
56
* to be zeroed. The definition can be found in the header file.
57
-*/
58
59
void
*
MemMalloc
(
size_t
size)
60
{
61
void
*ptr = malloc(size);
62
if
(ptr == NULL) {
63
MsgLog
(
KSM_STMTALLOC
,
"malloc: Out of swap space"
);
64
fprintf(stderr,
"malloc: Out of swap space"
);
65
exit(1);
66
}
67
return
ptr;
68
}
69
70
void
*
MemCalloc
(
size_t
nmemb,
size_t
size)
71
{
72
void
*ptr = calloc(nmemb, size);
73
if
(ptr == NULL) {
74
MsgLog
(
KSM_STMTALLOC
,
"calloc: Out of swap space"
);
75
fprintf(stderr,
"calloc: Out of swap space"
);
76
exit(1);
77
}
78
return
ptr;
79
}
80
81
void
*
MemRealloc
(
void
*ptr,
size_t
size)
82
{
83
void
*ptr1 = realloc(ptr, size);
84
if
(ptr1 == NULL) {
85
MsgLog
(
KSM_STMTALLOC
,
"realloc: Out of swap space"
);
86
fprintf(stderr,
"realloc: Out of swap space"
);
87
exit(1);
88
}
89
return
ptr1;
90
}
Generated on Tue Sep 18 2012 07:37:09 for OpenDNSSEC-enforcer by
1.8.1.2