Hi,

On 24-01-18 06:06, selva.n...@gmail.com wrote:
> From: Selva Nair <selva.n...@gmail.com>
> 
> - Avoids code-repetition especially so when support
>   for more key types are added.
> 
> Signed-off-by: Selva Nair <selva.n...@gmail.com>
> ---
>  src/openvpn/cryptoapi.c | 63 
> ++++++++++++++++++++++---------------------------
>  1 file changed, 28 insertions(+), 35 deletions(-)
> 
> diff --git a/src/openvpn/cryptoapi.c b/src/openvpn/cryptoapi.c
> index f155123..00e78b6 100644
> --- a/src/openvpn/cryptoapi.c
> +++ b/src/openvpn/cryptoapi.c
> @@ -108,6 +108,32 @@ typedef struct _CAPI_DATA {
>      BOOL free_crypt_prov;
>  } CAPI_DATA;
>  
> +static void
> +CAPI_DATA_free(CAPI_DATA *cd)
> +{
> +    if (!cd)
> +    {
> +        return;
> +    }
> +    if (cd->free_crypt_prov && cd->crypt_prov)
> +    {
> +        if (cd->key_spec == CERT_NCRYPT_KEY_SPEC)
> +        {
> +            NCryptFreeObject(cd->crypt_prov);
> +        }
> +        else
> +        {
> +            CryptReleaseContext(cd->crypt_prov, 0);
> +        }
> +    }
> +    if (cd->cert_context)
> +    {
> +        CertFreeCertificateContext(cd->cert_context);
> +    }
> +    free(cd);
> +}
> +
> +

This could have been a single newline.

>  static char *
>  ms_error_text(DWORD ms_err)
>  {
> @@ -363,22 +389,7 @@ finish(RSA *rsa)
>      {
>          return 0;
>      }
> -    if (cd->crypt_prov && cd->free_crypt_prov)
> -    {
> -        if (cd->key_spec == CERT_NCRYPT_KEY_SPEC)
> -        {
> -            NCryptFreeObject(cd->crypt_prov);
> -        }
> -        else
> -        {
> -            CryptReleaseContext(cd->crypt_prov, 0);
> -        }
> -    }
> -    if (cd->cert_context)
> -    {
> -        CertFreeCertificateContext(cd->cert_context);
> -    }
> -    free(cd);
> +    CAPI_DATA_free(cd);
>      RSA_meth_free((RSA_METHOD*) rsa_meth);
>      return 1;
>  }
> @@ -614,25 +625,7 @@ err:
>          {
>              free(my_rsa_method);
>          }
> -        if (cd)
> -        {
> -            if (cd->free_crypt_prov && cd->crypt_prov)
> -            {
> -                if (cd->key_spec == CERT_NCRYPT_KEY_SPEC)
> -                {
> -                    NCryptFreeObject(cd->crypt_prov);
> -                }
> -                else
> -                {
> -                    CryptReleaseContext(cd->crypt_prov, 0);
> -                }
> -            }
> -            if (cd->cert_context)
> -            {
> -                CertFreeCertificateContext(cd->cert_context);
> -            }
> -            free(cd);
> -        }
> +        CAPI_DATA_free(cd);
>      }
>      return 0;
>  }
> 

Other than that, looks good and works as expected.  So:

Acked-by: Steffan Karger <steffan.kar...@fox-it.com>

-Steffan

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Openvpn-devel mailing list
Openvpn-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openvpn-devel

Reply via email to