diff options
Diffstat (limited to 'crypto/cbc.c')
-rw-r--r-- | crypto/cbc.c | 6 |
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 | ||
178 | out: | 178 | out: |
179 | return err; | 179 | return err; |
180 | 180 | ||
181 | err_drop_spawn: | 181 | err_drop_spawn: |
182 | crypto_drop_spawn(spawn); | 182 | crypto_drop_spawn(spawn); |
183 | err_put_alg: | ||
184 | crypto_mod_put(alg); | ||
183 | err_free_inst: | 185 | err_free_inst: |
184 | kfree(inst); | 186 | kfree(inst); |
185 | goto out; | 187 | goto out; |