Hi,

On 02/04/2020 15:15, Antonio Quartulli wrote:
> Hi,
> 
> On 02/04/2020 12:38, Arne Schwabe wrote:
>> Commit f67efa94 exposed that tls_ctx_add_extra_certs will always leave
>> an error of PEM_R_NO_START_LINE on the stack that will printed the next
>> time that the error is printed.
>>
>> Fix this by discarding this error. Also clean up the logic to report
>> real error on other errors and also the no start line error if no
>> certificate can be found at all and it is required (--extra-certs
>> config option)
>>
>> Patch V2: fix optional flag was flipped betwen --cert and --extra-certs
>> Patch V3: Make logic more easy to follow, no functional changes
>>
>> Signed-off-by: Arne Schwabe <a...@rfc2549.org>
>> ---
>>  src/openvpn/ssl_openssl.c | 30 +++++++++++++++++++++---------
>>  1 file changed, 21 insertions(+), 9 deletions(-)
>>
>> diff --git a/src/openvpn/ssl_openssl.c b/src/openvpn/ssl_openssl.c
>> index 3f0031ff..1731474d 100644
>> --- a/src/openvpn/ssl_openssl.c
>> +++ b/src/openvpn/ssl_openssl.c
>> @@ -881,24 +881,36 @@ tls_ctx_load_cryptoapi(struct tls_root_ctx *ctx, const 
>> char *cryptoapi_cert)
>>  #endif /* ENABLE_CRYPTOAPI */
>>  
>>  static void
>> -tls_ctx_add_extra_certs(struct tls_root_ctx *ctx, BIO *bio)
>> +tls_ctx_add_extra_certs(struct tls_root_ctx *ctx, BIO *bio, bool optional)
>>  {
>>      X509 *cert;
>> -    for (;; )
>> +    while (true)
>>      {
>>          cert = NULL;
>> -        if (!PEM_read_bio_X509(bio, &cert, NULL, NULL)) /* takes ownership 
>> of cert */
>> -        {
>> -            break;
>> -        }
>> -        if (!cert)
>> +        if (!PEM_read_bio_X509(bio, &cert, NULL, NULL))
>>          {
>> +            /*  Error indicates that no certificate is found in the buffer.

there is also a typ0 in the line above: certificateS -> certificate.


-- 
Antonio Quartulli


_______________________________________________
Openvpn-devel mailing list
Openvpn-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openvpn-devel

Reply via email to