Handle last lines that aren't properly terminated.

PR: 308
This commit is contained in:
Richard Levitte 2002-11-14 06:49:45 +00:00
parent ff749aea44
commit 8df1de4e89
2 changed files with 8 additions and 3 deletions

View File

@ -4,6 +4,10 @@
Changes between 0.9.6g and 0.9.6h [xx XXX xxxx] Changes between 0.9.6g and 0.9.6h [xx XXX xxxx]
*) Change the default configuration reader to deal with last line not
being properly terminated.
[Richard Levitte]
*) Change X509_NAME_cmp() so it applies the special rules on handling *) Change X509_NAME_cmp() so it applies the special rules on handling
DN values that are of type PrintableString, as well as RDNs of type DN values that are of type PrintableString, as well as RDNs of type
emailAddress where the value has the type ia5String. emailAddress where the value has the type ia5String.

View File

@ -224,9 +224,9 @@ static int def_load(CONF *conf, BIO *in, long *line)
section_sk=(STACK_OF(CONF_VALUE) *)sv->value; section_sk=(STACK_OF(CONF_VALUE) *)sv->value;
bufnum=0; bufnum=0;
again=0;
for (;;) for (;;)
{ {
again=0;
if (!BUF_MEM_grow(buff,bufnum+BUFSIZE)) if (!BUF_MEM_grow(buff,bufnum+BUFSIZE))
{ {
CONFerr(CONF_F_CONF_LOAD_BIO,ERR_R_BUF_LIB); CONFerr(CONF_F_CONF_LOAD_BIO,ERR_R_BUF_LIB);
@ -237,7 +237,8 @@ static int def_load(CONF *conf, BIO *in, long *line)
BIO_gets(in, p, BUFSIZE-1); BIO_gets(in, p, BUFSIZE-1);
p[BUFSIZE-1]='\0'; p[BUFSIZE-1]='\0';
ii=i=strlen(p); ii=i=strlen(p);
if (i == 0) break; if (i == 0 && !again) break;
again=0;
while (i > 0) while (i > 0)
{ {
if ((p[i-1] != '\r') && (p[i-1] != '\n')) if ((p[i-1] != '\r') && (p[i-1] != '\n'))
@ -247,7 +248,7 @@ static int def_load(CONF *conf, BIO *in, long *line)
} }
/* we removed some trailing stuff so there is a new /* we removed some trailing stuff so there is a new
* line on the end. */ * line on the end. */
if (i == ii) if (ii && i == ii)
again=1; /* long line */ again=1; /* long line */
else else
{ {