aboutsummaryrefslogtreecommitdiffstats
path: root/crypto/cbc.c
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/cbc.c')
-rw-r--r--crypto/cbc.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/crypto/cbc.c b/crypto/cbc.c
index b761b1f9c6ca..dd5f332fd566 100644
--- a/crypto/cbc.c
+++ b/crypto/cbc.c
@@ -140,9 +140,8 @@ static int crypto_cbc_create(struct crypto_template *tmpl, struct rtattr **tb)
140 spawn = skcipher_instance_ctx(inst); 140 spawn = skcipher_instance_ctx(inst);
141 err = crypto_init_spawn(spawn, alg, skcipher_crypto_instance(inst), 141 err = crypto_init_spawn(spawn, alg, skcipher_crypto_instance(inst),
142 CRYPTO_ALG_TYPE_MASK); 142 CRYPTO_ALG_TYPE_MASK);
143 crypto_mod_put(alg);
144 if (err) 143 if (err)
145 goto err_free_inst; 144 goto err_put_alg;
146 145
147 err = crypto_inst_setname(skcipher_crypto_instance(inst), "cbc", alg); 146 err = crypto_inst_setname(skcipher_crypto_instance(inst), "cbc", alg);
148 if (err) 147 if (err)
@@ -174,12 +173,15 @@ static int crypto_cbc_create(struct crypto_template *tmpl, struct rtattr **tb)
174 err = skcipher_register_instance(tmpl, inst); 173 err = skcipher_register_instance(tmpl, inst);
175 if (err) 174 if (err)
176 goto err_drop_spawn; 175 goto err_drop_spawn;
176 crypto_mod_put(alg);
177 177
178out: 178out:
179 return err; 179 return err;
180 180
181err_drop_spawn: 181err_drop_spawn:
182 crypto_drop_spawn(spawn); 182 crypto_drop_spawn(spawn);
183err_put_alg:
184 crypto_mod_put(alg);
183err_free_inst: 185err_free_inst:
184 kfree(inst); 186 kfree(inst);
185 goto out; 187 goto out;