1 /* $OpenBSD: malloc-wrapper.c,v 1.7 2018/05/13 13:49:04 jsing Exp $ */
2 /*
3 * Copyright (c) 2014 Bob Beck
4 *
5 * Permission to use, copy, modify, and distribute this software for any
6 * purpose with or without fee is hereby granted, provided that the above
7 * copyright notice and this permission notice appear in all copies.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
10 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
11 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
12 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
13 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
14 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16 */
17 #include <stdio.h>
18 #include <stdlib.h>
19 #include <string.h>
20
21 int
CRYPTO_set_mem_functions(void * (* m)(size_t),void * (* r)(void *,size_t),void (* f)(void *))22 CRYPTO_set_mem_functions(void *(*m)(size_t), void *(*r)(void *, size_t),
23 void (*f)(void *))
24 {
25 return 0;
26 }
27
28 int
CRYPTO_set_mem_ex_functions(void * (* m)(size_t,const char *,int),void * (* r)(void *,size_t,const char *,int),void (* f)(void *))29 CRYPTO_set_mem_ex_functions(void *(*m)(size_t, const char *, int),
30 void *(*r)(void *, size_t, const char *, int), void (*f)(void *))
31 {
32 return 0;
33 }
34
35 int
CRYPTO_set_locked_mem_functions(void * (* m)(size_t),void (* f)(void *))36 CRYPTO_set_locked_mem_functions(void *(*m)(size_t), void (*f)(void *))
37 {
38 return 0;
39 }
40
41 int
CRYPTO_set_locked_mem_ex_functions(void * (* m)(size_t,const char *,int),void (* f)(void *))42 CRYPTO_set_locked_mem_ex_functions(void *(*m)(size_t, const char *, int),
43 void (*f)(void *))
44 {
45 return 0;
46 }
47
48 int
CRYPTO_set_mem_debug_functions(void (* m)(void *,int,const char *,int,int),void (* r)(void *,void *,int,const char *,int,int),void (* f)(void *,int),void (* so)(long),long (* go)(void))49 CRYPTO_set_mem_debug_functions(void (*m)(void *, int, const char *, int, int),
50 void (*r)(void *, void *, int, const char *, int, int),
51 void (*f)(void *, int), void (*so)(long), long (*go)(void))
52 {
53 return 0;
54 }
55
56
57 void
CRYPTO_get_mem_functions(void * (** m)(size_t),void * (** r)(void *,size_t),void (** f)(void *))58 CRYPTO_get_mem_functions(void *(**m)(size_t), void *(**r)(void *, size_t),
59 void (**f)(void *))
60 {
61 if (m != NULL)
62 *m = malloc;
63 if (r != NULL)
64 *r = realloc;
65 if (f != NULL)
66 *f = free;
67 }
68
69 void
CRYPTO_get_mem_ex_functions(void * (** m)(size_t,const char *,int),void * (** r)(void *,size_t,const char *,int),void (** f)(void *))70 CRYPTO_get_mem_ex_functions(void *(**m)(size_t, const char *, int),
71 void *(**r)(void *, size_t, const char *, int), void (**f)(void *))
72 {
73 if (m != NULL)
74 *m = NULL;
75 if (r != NULL)
76 *r = NULL;
77 if (f != NULL)
78 *f = free;
79 }
80
81 void
CRYPTO_get_locked_mem_functions(void * (** m)(size_t),void (** f)(void *))82 CRYPTO_get_locked_mem_functions(void *(**m)(size_t), void (**f)(void *))
83 {
84 if (m != NULL)
85 *m = malloc;
86 if (f != NULL)
87 *f = free;
88 }
89
90 void
CRYPTO_get_locked_mem_ex_functions(void * (** m)(size_t,const char *,int),void (** f)(void *))91 CRYPTO_get_locked_mem_ex_functions(void *(**m)(size_t, const char *, int),
92 void (**f)(void *))
93 {
94 if (m != NULL)
95 *m = NULL;
96 if (f != NULL)
97 *f = free;
98 }
99
100 void
CRYPTO_get_mem_debug_functions(void (** m)(void *,int,const char *,int,int),void (** r)(void *,void *,int,const char *,int,int),void (** f)(void *,int),void (** so)(long),long (** go)(void))101 CRYPTO_get_mem_debug_functions(void (**m)(void *, int, const char *, int, int),
102 void (**r)(void *, void *, int, const char *, int, int),
103 void (**f)(void *, int), void (**so)(long), long (**go)(void))
104 {
105 if (m != NULL)
106 *m = NULL;
107 if (r != NULL)
108 *r = NULL;
109 if (f != NULL)
110 *f = NULL;
111 if (so != NULL)
112 *so = NULL;
113 if (go != NULL)
114 *go = NULL;
115 }
116
117
118 void *
CRYPTO_malloc_locked(int num,const char * file,int line)119 CRYPTO_malloc_locked(int num, const char *file, int line)
120 {
121 if (num <= 0)
122 return NULL;
123 return malloc(num);
124 }
125
126 void
CRYPTO_free_locked(void * ptr)127 CRYPTO_free_locked(void *ptr)
128 {
129 free(ptr);
130 }
131
132 void *
CRYPTO_malloc(int num,const char * file,int line)133 CRYPTO_malloc(int num, const char *file, int line)
134 {
135 if (num <= 0)
136 return NULL;
137 return malloc(num);
138 }
139
140 char *
CRYPTO_strdup(const char * str,const char * file,int line)141 CRYPTO_strdup(const char *str, const char *file, int line)
142 {
143 return strdup(str);
144 }
145
146 void *
CRYPTO_realloc(void * ptr,int num,const char * file,int line)147 CRYPTO_realloc(void *ptr, int num, const char *file, int line)
148 {
149 if (num <= 0)
150 return NULL;
151 return realloc(ptr, num);
152 }
153
154 void *
CRYPTO_realloc_clean(void * ptr,int old_len,int num,const char * file,int line)155 CRYPTO_realloc_clean(void *ptr, int old_len, int num, const char *file,
156 int line)
157 {
158 if (num <= 0)
159 return NULL;
160 /* Original does not support shrinking. */
161 if (num < old_len)
162 return NULL;
163 return recallocarray(ptr, old_len, num, 1);
164 }
165
166 void
CRYPTO_free(void * ptr)167 CRYPTO_free(void *ptr)
168 {
169 free(ptr);
170 }
171
172 void *
CRYPTO_remalloc(void * a,int num,const char * file,int line)173 CRYPTO_remalloc(void *a, int num, const char *file, int line)
174 {
175 free(a);
176 return malloc(num);
177 }
178
179 void
CRYPTO_set_mem_debug_options(long bits)180 CRYPTO_set_mem_debug_options(long bits)
181 {
182 return;
183 }
184
185 long
CRYPTO_get_mem_debug_options(void)186 CRYPTO_get_mem_debug_options(void)
187 {
188 return 0;
189 }
190