This commit is contained in:
Juliusz Sosinowicz
2021-10-15 18:29:20 +02:00
parent 5bacc0c9ab
commit e97e8bc7d0

View File

@ -43509,46 +43509,41 @@ err:
if (!header) { if (!header) {
header = XSTRNSTR(pem, "-----BEGIN ", (unsigned int)i); header = XSTRNSTR(pem, "-----BEGIN ", (unsigned int)i);
} }
else { else if (!headerEnd) {
if (!headerEnd) { headerEnd = XSTRNSTR(header + XSTR_SIZEOF("-----BEGIN "),
headerEnd = XSTRNSTR(header + XSTR_SIZEOF("-----BEGIN "), "-----",
"-----", (unsigned int)
(unsigned int) (i - (header + XSTR_SIZEOF("-----BEGIN ") - pem)));
(i - (header + XSTR_SIZEOF("-----BEGIN ") - pem))); if (headerEnd) {
if (headerEnd) { headerEnd += XSTR_SIZEOF("-----");
headerEnd += XSTR_SIZEOF("-----"); /* Read in the newline */
/* Read in the newline */ (void)wolfSSL_BIO_read(bio, &pem[i], 1);
(void)wolfSSL_BIO_read(bio, &pem[i], 1); i++;
i++; if (*headerEnd != '\n' && *headerEnd != '\r') {
if (*headerEnd != '\n' && *headerEnd != '\r') { WOLFSSL_MSG("Missing newline after header");
WOLFSSL_MSG("Missing newline after header"); goto err;
goto err;
}
} }
} }
else if (!footer) { }
footer = XSTRNSTR(headerEnd, "-----END ", else if (!footer) {
(unsigned int)(i - (headerEnd - pem))); footer = XSTRNSTR(headerEnd, "-----END ",
} (unsigned int)(i - (headerEnd - pem)));
else if (!footerEnd) { }
footerEnd = XSTRNSTR(footer + XSTR_SIZEOF("-----"), else if (!footerEnd) {
"-----", (unsigned int)(i - footerEnd = XSTRNSTR(footer + XSTR_SIZEOF("-----"),
(footer + XSTR_SIZEOF("-----") - pem))); "-----", (unsigned int)(i -
if (footerEnd) { (footer + XSTR_SIZEOF("-----") - pem)));
footerEnd += XSTR_SIZEOF("-----"); if (footerEnd) {
/* Now check that footer matches header */ footerEnd += XSTR_SIZEOF("-----");
if (XMEMCMP(header + XSTR_SIZEOF("-----BEGIN "), /* Now check that footer matches header */
footer + XSTR_SIZEOF("-----END "), if (XMEMCMP(header + XSTR_SIZEOF("-----BEGIN "),
headerEnd - (header + XSTR_SIZEOF("-----BEGIN "))) footer + XSTR_SIZEOF("-----END "),
!= 0) { headerEnd - (header + XSTR_SIZEOF("-----BEGIN ")))
WOLFSSL_MSG("Header and footer don't match"); != 0) {
goto err; WOLFSSL_MSG("Header and footer don't match");
} goto err;
/* header and footer match */
break;
} }
} /* header and footer match */
else {
break; break;
} }
} }