diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/vtls/schannel_verify.c | 8 | 
1 files changed, 6 insertions, 2 deletions
| diff --git a/lib/vtls/schannel_verify.c b/lib/vtls/schannel_verify.c index 26f3ae488..0f44dad42 100644 --- a/lib/vtls/schannel_verify.c +++ b/lib/vtls/schannel_verify.c @@ -54,7 +54,7 @@  #define BACKEND connssl->backend  #define MAX_CAFILE_SIZE 1048576 /* 1 MiB */ -#define BEGIN_CERT "-----BEGIN CERTIFICATE-----\n" +#define BEGIN_CERT "-----BEGIN CERTIFICATE-----"  #define END_CERT "\n-----END CERTIFICATE-----"  typedef struct { @@ -72,6 +72,10 @@ typedef struct {    HCERTSTORE hExclusiveTrustedPeople;  } CERT_CHAIN_ENGINE_CONFIG_WIN7, *PCERT_CHAIN_ENGINE_CONFIG_WIN7; +static int is_cr_or_lf(char c) +{ +  return c == '\r' || c == '\n'; +}  static CURLcode add_certs_to_store(HCERTSTORE trust_store,                                     const char *ca_file, @@ -178,7 +182,7 @@ static CURLcode add_certs_to_store(HCERTSTORE trust_store,    current_ca_file_ptr = ca_file_buffer;    while(more_certs && *current_ca_file_ptr != '\0') {      char *begin_cert_ptr = strstr(current_ca_file_ptr, BEGIN_CERT); -    if(!begin_cert_ptr) { +    if(!begin_cert_ptr || !is_cr_or_lf(begin_cert_ptr[strlen(BEGIN_CERT)])) {        more_certs = 0;      }      else { | 
