]>
Commit | Line | Data |
---|---|---|
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 | ||
16 | static 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 | ||
38 | finish: | |
39 | BIO_free(bio); | |
40 | return ok; | |
41 | } | |
42 | ||
43 | int global_init(void) | |
44 | { | |
45 | CRYPTO_set_mem_debug(1); | |
46 | CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON); | |
47 | return 1; | |
48 | } | |
49 | ||
50 | int setup_tests(void) | |
51 | { | |
52 | ADD_TEST(test_bio_memleak); | |
53 | return 1; | |
54 | } |