X-Git-Url: https://git.openssl.org/?p=openssl.git;a=blobdiff_plain;f=crypto%2Fdsa%2Fdsa_meth.c;h=51a486b2ec1d22fef2da12beead2426cdd3bad8d;hp=5ce93396cf439c637ccd77c5afece46553834139;hb=7af42628c1f2864cd73659245742baabdb1a449f;hpb=569d0646096e6c7e07b9b89b04204eef934c3b69;ds=sidebyside diff --git a/crypto/dsa/dsa_meth.c b/crypto/dsa/dsa_meth.c index 5ce93396cf..51a486b2ec 100644 --- a/crypto/dsa/dsa_meth.c +++ b/crypto/dsa/dsa_meth.c @@ -21,47 +21,46 @@ DSA_METHOD *DSA_meth_new(const char *name, int flags) { - DSA_METHOD *dsam = OPENSSL_zalloc(sizeof(DSA_METHOD)); + DSA_METHOD *dsam = OPENSSL_zalloc(sizeof(*dsam)); if (dsam != NULL) { - dsam->name = OPENSSL_strdup(name); - if (dsam->name == NULL) { - OPENSSL_free(dsam); - DSAerr(DSA_F_DSA_METH_NEW, ERR_R_MALLOC_FAILURE); - return NULL; - } dsam->flags = flags; + + dsam->name = OPENSSL_strdup(name); + if (dsam->name != NULL) + return dsam; + + OPENSSL_free(dsam); } - return dsam; + DSAerr(DSA_F_DSA_METH_NEW, ERR_R_MALLOC_FAILURE); + return NULL; } void DSA_meth_free(DSA_METHOD *dsam) { if (dsam != NULL) { - if (dsam->name != NULL) - OPENSSL_free(dsam->name); + OPENSSL_free(dsam->name); OPENSSL_free(dsam); } } DSA_METHOD *DSA_meth_dup(const DSA_METHOD *dsam) { - DSA_METHOD *ret; - - ret = OPENSSL_malloc(sizeof(DSA_METHOD)); + DSA_METHOD *ret = OPENSSL_malloc(sizeof(*ret)); if (ret != NULL) { memcpy(ret, dsam, sizeof(*dsam)); + ret->name = OPENSSL_strdup(dsam->name); - if (ret->name == NULL) { - OPENSSL_free(ret); - DSAerr(DSA_F_DSA_METH_DUP, ERR_R_MALLOC_FAILURE); - return NULL; - } + if (ret->name != NULL) + return ret; + + OPENSSL_free(ret); } - return ret; + DSAerr(DSA_F_DSA_METH_DUP, ERR_R_MALLOC_FAILURE); + return NULL; } const char *DSA_meth_get0_name(const DSA_METHOD *dsam) @@ -71,9 +70,8 @@ const char *DSA_meth_get0_name(const DSA_METHOD *dsam) int DSA_meth_set1_name(DSA_METHOD *dsam, const char *name) { - char *tmpname; + char *tmpname = OPENSSL_strdup(name); - tmpname = OPENSSL_strdup(name); if (tmpname == NULL) { DSAerr(DSA_F_DSA_METH_SET1_NAME, ERR_R_MALLOC_FAILURE); return 0; @@ -134,7 +132,7 @@ int DSA_meth_set_sign_setup(DSA_METHOD *dsam, } int (*DSA_meth_get_verify(const DSA_METHOD *dsam)) - (const unsigned char *, int , DSA_SIG *, DSA *) + (const unsigned char *, int, DSA_SIG *, DSA *) { return dsam->dsa_do_verify; } @@ -147,29 +145,30 @@ int DSA_meth_set_verify(DSA_METHOD *dsam, } int (*DSA_meth_get_mod_exp(const DSA_METHOD *dsam)) - (DSA *, BIGNUM *, BIGNUM *, BIGNUM *, BIGNUM *, BIGNUM *, BIGNUM *, - BN_CTX *, BN_MONT_CTX *) + (DSA *, BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *, + const BIGNUM *, const BIGNUM *, BN_CTX *, BN_MONT_CTX *) { return dsam->dsa_mod_exp; } int DSA_meth_set_mod_exp(DSA_METHOD *dsam, - int (*mod_exp) (DSA *, BIGNUM *, BIGNUM *, BIGNUM *, BIGNUM *, BIGNUM *, - BIGNUM *, BN_CTX *, BN_MONT_CTX *)) + int (*mod_exp) (DSA *, BIGNUM *, const BIGNUM *, const BIGNUM *, + const BIGNUM *, const BIGNUM *, const BIGNUM *, BN_CTX *, + BN_MONT_CTX *)) { dsam->dsa_mod_exp = mod_exp; return 1; } int (*DSA_meth_get_bn_mod_exp(const DSA_METHOD *dsam)) - (DSA *, BIGNUM *, BIGNUM *, const BIGNUM *, const BIGNUM *, BN_CTX *, + (DSA *, BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *, BN_CTX *, BN_MONT_CTX *) { return dsam->bn_mod_exp; } int DSA_meth_set_bn_mod_exp(DSA_METHOD *dsam, - int (*bn_mod_exp) (DSA *, BIGNUM *, BIGNUM *, const BIGNUM *, + int (*bn_mod_exp) (DSA *, BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *, BN_CTX *, BN_MONT_CTX *)) { dsam->bn_mod_exp = bn_mod_exp;