Have BIO_get_mem_data return a size_t and uint8_t*
Change-Id: I883f9c3527b572a2140ae4899cf4409cdc25c6dc
Reviewed-on: https://boringssl-review.googlesource.com/1261
Reviewed-by: Adam Langley <agl@google.com>
diff --git a/crypto/bio/bio_mem.c b/crypto/bio/bio_mem.c
index 4d047cf..457c2e0 100644
--- a/crypto/bio/bio_mem.c
+++ b/crypto/bio/bio_mem.c
@@ -254,7 +254,7 @@
ret = (long)b->length;
if (ptr != NULL) {
pptr = (char **)ptr;
- *pptr = (char *)&(b->data[0]);
+ *pptr = (char *)&b->data[0];
}
break;
case BIO_C_SET_BUF_MEM:
@@ -297,6 +297,19 @@
const BIO_METHOD *BIO_s_mem(void) { return &mem_method; }
+int BIO_mem_contents(const BIO *bio, const uint8_t **out_contents,
+ size_t *out_len) {
+ const BUF_MEM *b;
+ if (bio->method != &mem_method) {
+ return 0;
+ }
+
+ b = (BUF_MEM *)bio->ptr;
+ *out_contents = (uint8_t *)b->data;
+ *out_len = b->length;
+ return 1;
+}
+
long BIO_get_mem_data(BIO *bio, char **contents) {
return BIO_ctrl(bio, BIO_CTRL_INFO, 0, (char *) contents);
}