ok

Florian Obser(flor...@openbsd.org) on 2020.09.14 17:12:01 +0200:
> Relax parsing of pem files a bit. Apparently there are CAs that use
> \r\n line endings.
> From Bartosz Kuzma as part of a larger diff.
> 
> OK?
> 
> diff --git certproc.c certproc.c
> index 7fde96e970e..975e12afaaa 100644
> --- certproc.c
> +++ certproc.c
> @@ -28,7 +28,8 @@
>  
>  #include "extern.h"
>  
> -#define MARKER "-----END CERTIFICATE-----\n"
> +#define BEGIN_MARKER "-----BEGIN CERTIFICATE-----"
> +#define END_MARKER "-----END CERTIFICATE-----"
>  
>  int
>  certproc(int netsock, int filesock)
> @@ -81,19 +82,25 @@ certproc(int netsock, int filesock)
>       if ((csr = readbuf(netsock, COMM_CSR, &csrsz)) == NULL)
>               goto out;
>  
> -     if (csrsz < strlen(MARKER)) {
> +     if (csrsz < strlen(END_MARKER)) {
>               warnx("invalid cert");
>               goto out;
>       }
>  
> -     chaincp = strstr(csr, MARKER);
> +     chaincp = strstr(csr, END_MARKER);
>  
>       if (chaincp == NULL) {
>               warnx("invalid cert");
>               goto out;
>       }
>  
> -     chaincp += strlen(MARKER);
> +     chaincp += strlen(END_MARKER);
> +
> +     if ((chaincp = strstr(chaincp, BEGIN_MARKER)) == NULL) {
> +             warnx("invalid certificate chain");
> +             goto out;
> +     }
> +
>       if ((chain = strdup(chaincp)) == NULL) {
>               warn("strdup");
>               goto out;
> 
> 
> -- 
> I'm not entirely sure you are real.
> 

Reply via email to