src/lib/libcrypto/malloc-wrapper.c

206 lines
4.3 KiB
C
Raw Normal View History

2023-07-10 02:10:46 +02:00
/* $OpenBSD: malloc-wrapper.c,v 1.8 2023/07/08 08:28:23 beck 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 <stdio.h>
#include <stdlib.h>
#include <string.h>
2023-07-10 02:10:46 +02:00
#include <openssl/crypto.h>
int
CRYPTO_set_mem_functions(void *(*m)(size_t), void *(*r)(void *, size_t),
void (*f)(void *))
{
return 0;
}
2023-07-10 02:10:46 +02:00
LCRYPTO_ALIAS(CRYPTO_set_mem_functions);
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;
}
2023-07-10 02:10:46 +02:00
LCRYPTO_ALIAS(CRYPTO_set_mem_ex_functions);
int
CRYPTO_set_locked_mem_functions(void *(*m)(size_t), void (*f)(void *))
{
return 0;
}
2023-07-10 02:10:46 +02:00
LCRYPTO_ALIAS(CRYPTO_set_locked_mem_functions);
int
CRYPTO_set_locked_mem_ex_functions(void *(*m)(size_t, const char *, int),
void (*f)(void *))
{
return 0;
}
2023-07-10 02:10:46 +02:00
LCRYPTO_ALIAS(CRYPTO_set_locked_mem_ex_functions);
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;
}
2023-07-10 02:10:46 +02:00
LCRYPTO_ALIAS(CRYPTO_set_mem_debug_functions);
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;
}
2023-07-10 02:10:46 +02:00
LCRYPTO_ALIAS(CRYPTO_get_mem_functions);
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;
}
2023-07-10 02:10:46 +02:00
LCRYPTO_ALIAS(CRYPTO_get_mem_ex_functions);
void
CRYPTO_get_locked_mem_functions(void *(**m)(size_t), void (**f)(void *))
{
if (m != NULL)
*m = malloc;
if (f != NULL)
*f = free;
}
2023-07-10 02:10:46 +02:00
LCRYPTO_ALIAS(CRYPTO_get_locked_mem_functions);
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;
}
2023-07-10 02:10:46 +02:00
LCRYPTO_ALIAS(CRYPTO_get_locked_mem_ex_functions);
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;
}
2023-07-10 02:10:46 +02:00
LCRYPTO_ALIAS(CRYPTO_get_mem_debug_functions);
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)
{
if (num <= 0)
return NULL;
/* Original does not support shrinking. */
if (num < old_len)
return NULL;
return recallocarray(ptr, old_len, num, 1);
}
2023-07-10 02:10:46 +02:00
LCRYPTO_ALIAS(CRYPTO_realloc_clean);
void
CRYPTO_free(void *ptr)
{
free(ptr);
}
void *
CRYPTO_remalloc(void *a, int num, const char *file, int line)
{
free(a);
return malloc(num);
}
2023-07-10 02:10:46 +02:00
LCRYPTO_ALIAS(CRYPTO_remalloc);
void
CRYPTO_set_mem_debug_options(long bits)
{
return;
}
2023-07-10 02:10:46 +02:00
LCRYPTO_ALIAS(CRYPTO_set_mem_debug_options);
long
CRYPTO_get_mem_debug_options(void)
{
return 0;
}
2023-07-10 02:10:46 +02:00
LCRYPTO_ALIAS(CRYPTO_get_mem_debug_options);