diff options
author | Daniel Kahn Gillmor <dkg@fifthhorseman.net> | 2016-01-30 20:38:08 -0500 |
---|---|---|
committer | Rich Salz <rsalz@openssl.org> | 2016-01-31 14:05:13 -0500 |
commit | 8ab31975bacb9c907261088937d3aa4102e3af84 (patch) | |
tree | 5c607508997ae2699e088446a2bd40f199fc6dfb | |
parent | 0e87e05816d3e4b66ea7904634095aad5f6f325f (diff) |
RT4129: BUF_new_mem_buf should take const void *
Signed-off-by: Rich Salz <rsalz@akamai.com>
Reviewed-by: Dr. Stephen Henson <steve@openssl.org>
-rw-r--r-- | crypto/bio/bss_mem.c | 5 | ||||
-rw-r--r-- | doc/crypto/BIO_s_mem.pod | 4 | ||||
-rw-r--r-- | include/openssl/bio.h | 2 |
3 files changed, 6 insertions, 5 deletions
diff --git a/crypto/bio/bss_mem.c b/crypto/bio/bss_mem.c index 4a0fcdaa8f..4d4554719c 100644 --- a/crypto/bio/bss_mem.c +++ b/crypto/bio/bss_mem.c @@ -108,7 +108,7 @@ BIO_METHOD *BIO_s_secmem(void) return(&secmem_method); } -BIO *BIO_new_mem_buf(void *buf, int len) +BIO *BIO_new_mem_buf(const void *buf, int len) { BIO *ret; BUF_MEM *b; @@ -122,7 +122,8 @@ BIO *BIO_new_mem_buf(void *buf, int len) if ((ret = BIO_new(BIO_s_mem())) == NULL) return NULL; b = (BUF_MEM *)ret->ptr; - b->data = buf; + /* Cast away const and trust in the MEM_RDONLY flag. */ + b->data = (void *)buf; b->length = sz; b->max = sz; ret->flags |= BIO_FLAGS_MEM_RDONLY; diff --git a/doc/crypto/BIO_s_mem.pod b/doc/crypto/BIO_s_mem.pod index 1aa7e6ebf9..b9ce5da6e2 100644 --- a/doc/crypto/BIO_s_mem.pod +++ b/doc/crypto/BIO_s_mem.pod @@ -17,7 +17,7 @@ BIO_get_mem_ptr, BIO_new_mem_buf - memory BIO BIO_set_mem_buf(BIO *b,BUF_MEM *bm,int c) BIO_get_mem_ptr(BIO *b,BUF_MEM **pp) - BIO *BIO_new_mem_buf(void *buf, int len); + BIO *BIO_new_mem_buf(const void *buf, int len); =head1 DESCRIPTION @@ -65,7 +65,7 @@ BIO_get_mem_ptr() places the underlying BUF_MEM structure in B<pp>. It is a macro. BIO_new_mem_buf() creates a memory BIO using B<len> bytes of data at B<buf>, -if B<len> is -1 then the B<buf> is assumed to be null terminated and its +if B<len> is -1 then the B<buf> is assumed to be nul terminated and its length is determined by B<strlen>. The BIO is set to a read only state and as a result cannot be written to. This is useful when some data needs to be made available from a static area of memory in the form of a BIO. The diff --git a/include/openssl/bio.h b/include/openssl/bio.h index 8b00ffdda7..9b398ee51b 100644 --- a/include/openssl/bio.h +++ b/include/openssl/bio.h @@ -655,7 +655,7 @@ long BIO_debug_callback(BIO *bio, int cmd, const char *argp, int argi, BIO_METHOD *BIO_s_mem(void); BIO_METHOD *BIO_s_secmem(void); -BIO *BIO_new_mem_buf(void *buf, int len); +BIO *BIO_new_mem_buf(const void *buf, int len); BIO_METHOD *BIO_s_socket(void); BIO_METHOD *BIO_s_connect(void); BIO_METHOD *BIO_s_accept(void); |