diff options
Diffstat (limited to 'src/lib/libcrypto/bio/bss_mem.c')
| -rw-r--r-- | src/lib/libcrypto/bio/bss_mem.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/lib/libcrypto/bio/bss_mem.c b/src/lib/libcrypto/bio/bss_mem.c index 28ff7582bf..a4edb711ae 100644 --- a/src/lib/libcrypto/bio/bss_mem.c +++ b/src/lib/libcrypto/bio/bss_mem.c | |||
| @@ -190,7 +190,7 @@ static int mem_write(BIO *b, const char *in, int inl) | |||
| 190 | 190 | ||
| 191 | BIO_clear_retry_flags(b); | 191 | BIO_clear_retry_flags(b); |
| 192 | blen=bm->length; | 192 | blen=bm->length; |
| 193 | if (BUF_MEM_grow(bm,blen+inl) != (blen+inl)) | 193 | if (BUF_MEM_grow_clean(bm,blen+inl) != (blen+inl)) |
| 194 | goto end; | 194 | goto end; |
| 195 | memcpy(&(bm->data[blen]),in,inl); | 195 | memcpy(&(bm->data[blen]),in,inl); |
| 196 | ret=inl; | 196 | ret=inl; |
| @@ -284,7 +284,11 @@ static int mem_gets(BIO *bp, char *buf, int size) | |||
| 284 | 284 | ||
| 285 | BIO_clear_retry_flags(bp); | 285 | BIO_clear_retry_flags(bp); |
| 286 | j=bm->length; | 286 | j=bm->length; |
| 287 | if (j <= 0) return(0); | 287 | if (j <= 0) |
| 288 | { | ||
| 289 | *buf='\0'; | ||
| 290 | return 0; | ||
| 291 | } | ||
| 288 | p=bm->data; | 292 | p=bm->data; |
| 289 | for (i=0; i<j; i++) | 293 | for (i=0; i<j; i++) |
| 290 | { | 294 | { |
