Update from stable branch.

This commit is contained in:
Dr. Stephen Henson 2009-03-07 17:00:23 +00:00
parent 73bfcf2226
commit 77202a85a0
2 changed files with 16 additions and 10 deletions

View File

@ -745,6 +745,10 @@
Changes between 0.9.8j and 0.9.8k [xx XXX xxxx]
*) Improve efficiency of mem_gets: don't search whole buffer each time
for a '\n'
[Jeremy Shapiro <jnshapir@us.ibm.com>]
*) New -hex option for openssl rand.
[Matthieu Herrb]

View File

@ -280,6 +280,7 @@ static int mem_gets(BIO *bp, char *buf, int size)
BIO_clear_retry_flags(bp);
j=bm->length;
if ((size-1) < j) j=size-1;
if (j <= 0)
{
*buf='\0';
@ -288,17 +289,18 @@ static int mem_gets(BIO *bp, char *buf, int size)
p=bm->data;
for (i=0; i<j; i++)
{
if (p[i] == '\n') break;
if (p[i] == '\n')
{
i++;
break;
}
}
if (i == j)
{
BIO_set_retry_read(bp);
/* return(-1); change the semantics 0.6.6a */
}
else
i++;
/* i is the max to copy */
if ((size-1) < i) i=size-1;
/*
* i is now the max num of bytes to copy, either j or up to
* and including the first newline
*/
i=mem_read(bp,buf,i);
if (i > 0) buf[i]='\0';
ret=i;