]> git.ipfire.org Git - thirdparty/openssl.git/blame - test/bio_memleak_test.c
Fix a memory leak in ARIA GCM
[thirdparty/openssl.git] / test / bio_memleak_test.c
CommitLineData
492f7064 1/*
72a7a702 2 * Copyright 2018-2019 The OpenSSL Project Authors. All Rights Reserved.
492f7064
CM
3 *
4 * Licensed under the OpenSSL license (the "License"). You may not use
5 * this file except in compliance with the License. You can obtain a copy
6 * in the file LICENSE in the source distribution or at
7 * https://www.openssl.org/source/license.html
8 */
9#include <stdio.h>
10#include <string.h>
11#include <openssl/buffer.h>
12#include <openssl/bio.h>
13
14#include "testutil.h"
15
16static int test_bio_memleak(void)
17{
18 int ok = 0;
19 BIO *bio;
20 BUF_MEM bufmem;
21 const char *str = "BIO test\n";
22 char buf[100];
23
24 bio = BIO_new(BIO_s_mem());
25 if (bio == NULL)
26 goto finish;
27 bufmem.length = strlen(str) + 1;
28 bufmem.data = (char *) str;
29 bufmem.max = bufmem.length;
30 BIO_set_mem_buf(bio, &bufmem, BIO_NOCLOSE);
31 BIO_set_flags(bio, BIO_FLAGS_MEM_RDONLY);
32
33 if (BIO_read(bio, buf, sizeof(buf)) <= 0)
34 goto finish;
35
36 ok = strcmp(buf, str) == 0;
37
38finish:
39 BIO_free(bio);
40 return ok;
41}
42
43int global_init(void)
44{
45 CRYPTO_set_mem_debug(1);
46 CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON);
47 return 1;
48}
49
50int setup_tests(void)
51{
52 ADD_TEST(test_bio_memleak);
53 return 1;
54}