a2c174ff9599d5481cd25fc30423afa4e306d2d5
[gnupg.git] / keyserver / no-libgcrypt.c
1 /* no-libgcrypt.c - Replacement functions for libgcrypt.
2  *      Copyright (C) 2003 Free Software Foundation, Inc.
3  *
4  * This file is part of GnuPG.
5  *
6  * GnuPG is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * GnuPG is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
19  * USA.
20  */
21
22 #include <config.h>
23 #include <stdio.h>
24 #include <stdlib.h>
25 #include <string.h>
26 #include <errno.h>
27
28 #include "../common/util.h"
29 #include "i18n.h"
30
31
32 /* Replace libgcrypt's malloc functions which are used by
33    ../jnlib/libjnlib.a .  ../common/util.h defines macros to map them
34    to xmalloc etc. */
35 static void
36 out_of_memory (void)
37 {
38   fprintf (stderr, "error allocating enough memory: %s\n", strerror (errno));
39   exit (2);
40 }
41
42
43 void *
44 gcry_malloc (size_t n)
45 {
46   return malloc (n);
47 }
48
49 void *
50 gcry_xmalloc (size_t n)
51 {
52   void *p = malloc (n);
53   if (!p)
54     out_of_memory ();
55   return p;
56 }
57
58 char *
59 gcry_strdup (const char *string)
60 {
61   return malloc (strlen (string)+1);
62 }
63
64
65 void *
66 gcry_realloc (void *a, size_t n)
67 {
68   return realloc (a, n);
69 }
70
71 void *
72 gcry_xrealloc (void *a, size_t n)
73 {
74   void *p = realloc (a, n);
75   if (!p)
76     out_of_memory ();
77   return p;
78 }
79
80
81
82 void *
83 gcry_calloc (size_t n, size_t m)
84 {
85   return calloc (n, m);
86 }
87
88 void *
89 gcry_xcalloc (size_t n, size_t m)
90 {
91   void *p = calloc (n, m);
92   if (!p)
93     out_of_memory ();
94   return p;
95 }
96
97
98 char *
99 gcry_xstrdup (const char *string)
100 {
101   void *p = malloc (strlen (string)+1);
102   if (!p)
103     out_of_memory ();
104   strcpy( p, string );
105   return p;
106 }
107
108 void
109 gcry_free (void *a)
110 {
111   if (a)
112     free (a);
113 }