/* * Copyright 2018 The OpenSSL Project Authors. All Rights Reserved. * * Licensed under the OpenSSL license (the "License"). You may not use * this file except in compliance with the License. You can obtain a copy * in the file LICENSE in the source distribution or at * https://www.openssl.org/source/license.html */ #include #include #include #include #include "testutil.h" static int test_bio_memleak(void) { int ok = 0; BIO *bio; BUF_MEM bufmem; const char *str = "BIO test\n"; char buf[100]; bio = BIO_new(BIO_s_mem()); if (bio == NULL) goto finish; bufmem.length = strlen(str) + 1; bufmem.data = (char *) str; bufmem.max = bufmem.length; BIO_set_mem_buf(bio, &bufmem, BIO_NOCLOSE); BIO_set_flags(bio, BIO_FLAGS_MEM_RDONLY); if (BIO_read(bio, buf, sizeof(buf)) <= 0) goto finish; ok = strcmp(buf, str) == 0; finish: BIO_free(bio); return ok; } int global_init(void) { CRYPTO_set_mem_debug(1); CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON); return 1; } int setup_tests(void) { ADD_TEST(test_bio_memleak); return 1; }