diff options
Diffstat (limited to '')
| -rw-r--r-- | src/lib/libcrypto/bio/bss_mem.c | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/src/lib/libcrypto/bio/bss_mem.c b/src/lib/libcrypto/bio/bss_mem.c index e7ab9cb3a3..a4edb711ae 100644 --- a/src/lib/libcrypto/bio/bss_mem.c +++ b/src/lib/libcrypto/bio/bss_mem.c | |||
| @@ -284,7 +284,6 @@ 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 ((size-1) < j) j=size-1; | ||
| 288 | if (j <= 0) | 287 | if (j <= 0) |
| 289 | { | 288 | { |
| 290 | *buf='\0'; | 289 | *buf='\0'; |
| @@ -293,18 +292,17 @@ static int mem_gets(BIO *bp, char *buf, int size) | |||
| 293 | p=bm->data; | 292 | p=bm->data; |
| 294 | for (i=0; i<j; i++) | 293 | for (i=0; i<j; i++) |
| 295 | { | 294 | { |
| 296 | if (p[i] == '\n') | 295 | if (p[i] == '\n') break; |
| 297 | { | ||
| 298 | i++; | ||
| 299 | break; | ||
| 300 | } | ||
| 301 | } | 296 | } |
| 302 | 297 | if (i == j) | |
| 303 | /* | 298 | { |
| 304 | * i is now the max num of bytes to copy, either j or up to | 299 | BIO_set_retry_read(bp); |
| 305 | * and including the first newline | 300 | /* return(-1); change the semantics 0.6.6a */ |
| 306 | */ | 301 | } |
| 307 | 302 | else | |
| 303 | i++; | ||
| 304 | /* i is the max to copy */ | ||
| 305 | if ((size-1) < i) i=size-1; | ||
| 308 | i=mem_read(bp,buf,i); | 306 | i=mem_read(bp,buf,i); |
| 309 | if (i > 0) buf[i]='\0'; | 307 | if (i > 0) buf[i]='\0'; |
| 310 | ret=i; | 308 | ret=i; |
