/* $OpenBSD: malloc-wrapper.c,v 1.3 2014/04/20 14:32:19 jsing Exp $ */ /* * Copyright (c) 2014 Bob Beck * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ #include #include #include int CRYPTO_set_mem_functions(void *(*m)(size_t), void *(*r)(void *, size_t), void (*f)(void *)) { return 0; } int CRYPTO_set_mem_ex_functions(void *(*m)(size_t, const char *, int), void *(*r)(void *, size_t, const char *, int), void (*f)(void *)) { return 0; } int CRYPTO_set_locked_mem_functions(void *(*m)(size_t), void (*f)(void *)) { return 0; } int CRYPTO_set_locked_mem_ex_functions(void *(*m)(size_t, const char *, int), void (*f)(void *)) { return 0; } 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)) { return 0; } void CRYPTO_get_mem_functions(void *(**m)(size_t), void *(**r)(void *, size_t), void (**f)(void *)) { if (m != NULL) *m = malloc; if (r != NULL) *r = realloc; if (f != NULL) *f = free; } void CRYPTO_get_mem_ex_functions(void *(**m)(size_t, const char *, int), void *(**r)(void *, size_t, const char *, int), void (**f)(void *)) { if (m != NULL) *m = NULL; if (r != NULL) *r = NULL; if (f != NULL) *f = free; } void CRYPTO_get_locked_mem_functions(void *(**m)(size_t), void (**f)(void *)) { if (m != NULL) *m = malloc; if (f != NULL) *f = free; } void CRYPTO_get_locked_mem_ex_functions(void *(**m)(size_t, const char *, int), void (**f)(void *)) { if (m != NULL) *m = NULL; if (f != NULL) *f = free; } 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)) { if (m != NULL) *m = NULL; if (r != NULL) *r = NULL; if (f != NULL) *f = NULL; if (so != NULL) *so = NULL; if (go != NULL) *go = NULL; } void * CRYPTO_malloc_locked(int num, const char *file, int line) { if (num <= 0) return NULL; return malloc(num); } void CRYPTO_free_locked(void *ptr) { free(ptr); } void * CRYPTO_malloc(int num, const char *file, int line) { if (num <= 0) return NULL; return malloc(num); } char * CRYPTO_strdup(const char *str, const char *file, int line) { return strdup(str); } void * CRYPTO_realloc(void *ptr, int num, const char *file, int line) { if (num <= 0) return NULL; return realloc(ptr, num); } void * CRYPTO_realloc_clean(void *ptr, int old_len, int num, const char *file, int line) { void *ret = NULL; if (num <= 0) return NULL; if (num < old_len) return NULL; /* original does not support shrinking */ ret = malloc(num); if (ret && ptr && old_len > 0) { memcpy(ret, ptr, old_len); explicit_bzero(ptr, old_len); free(ptr); } return ret; } void CRYPTO_free(void *ptr) { free(ptr); } void * CRYPTO_remalloc(void *a, int num, const char *file, int line) { free(a); return malloc(num); } void CRYPTO_set_mem_debug_options(long bits) { return; } long CRYPTO_get_mem_debug_options(void) { return 0; }