Fix an incoherent test.

Pointer 'o' is set inside a local buffer, so it can't be NULL.
Also fix coding style and add comments

Reviewed-by: Tim Hudson <tjh@openssl.org>
Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/4754)
This commit is contained in:
FdaSilvaYY 2017-12-08 10:25:38 -05:00 committed by Rich Salz
parent 5f21b44068
commit cef115ff0c

View File

@ -632,6 +632,10 @@ const void *OBJ_bsearch_ex_(const void *key, const void *base_, int num,
return p; return p;
} }
/*
* Parse a BIO sink to create some extra oid's objects.
* Line format:<OID:isdigit or '.']><isspace><SN><isspace><LN>
*/
int OBJ_create_objects(BIO *in) int OBJ_create_objects(BIO *in)
{ {
char buf[512]; char buf[512];
@ -653,9 +657,9 @@ int OBJ_create_objects(BIO *in)
*(s++) = '\0'; *(s++) = '\0';
while (ossl_isspace(*s)) while (ossl_isspace(*s))
s++; s++;
if (*s == '\0') if (*s == '\0') {
s = NULL; s = NULL;
else { } else {
l = s; l = s;
while (*l != '\0' && !ossl_isspace(*l)) while (*l != '\0' && !ossl_isspace(*l))
l++; l++;
@ -663,14 +667,17 @@ int OBJ_create_objects(BIO *in)
*(l++) = '\0'; *(l++) = '\0';
while (ossl_isspace(*l)) while (ossl_isspace(*l))
l++; l++;
if (*l == '\0') if (*l == '\0') {
l = NULL; l = NULL;
} else }
} else {
l = NULL; l = NULL;
}
} }
} else } else {
s = NULL; s = NULL;
if ((o == NULL) || (*o == '\0')) }
if (*o == '\0')
return num; return num;
if (!OBJ_create(o, s, l)) if (!OBJ_create(o, s, l))
return num; return num;