使用OpenSSL内存BIO以正确的方式写入和读取以null结尾的字符串
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用OpenSSL内存BIO以正确的方式写入和读取以null结尾的字符串相关的知识,希望对你有一定的参考价值。
如果您执行以下示例(几乎完全基于官方https://www.openssl.org/docs/man1.0.2/crypto/BIO_s_mem.html#EXAMPLE):
#include <openssl/bio.h>
#include <openssl/buffer.h>
int main() {
BIO *mem = BIO_new(BIO_s_mem());
BIO_puts(mem, "Hello World
");
BUF_MEM *bptr;
BIO_get_mem_ptr(mem, &bptr);
BIO_set_close(mem, BIO_NOCLOSE); /* So BIO_free() leaves BUF_MEM alone */
BIO_free(mem);
printf("%s", bptr->data);
BUF_MEM_free(bptr);
return 0;
}
它可能会按预期工作,这取决于char
之后的基础记忆缓冲区中未经初始化的
偶然是