diff options
-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); |