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 | { |