root/crypto/libressl/crypto/malloc-wrapper.c
/* $OpenBSD: malloc-wrapper.c,v 1.7 2018/05/13 13:49:04 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 <stdio.h>
#include <stdlib.h>
#include <string.h>

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)
{
        if (num <= 0)
                return NULL;
        /* Original does not support shrinking. */
        if (num < old_len)
                return NULL;
        return recallocarray(ptr, old_len, num, 1);
}

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;
}