crypto: mxc-scc - fix unwinding in mxc_scc_crypto_register()
Subsystems (3)
PATCH 2/2 crypto: mxc-scc - fix unwinding in mxc_scc_crypto_register()
There are two issues here:
1) We need to decrement "i" otherwise we unregister something that was not successfully registered.
2) The original code did not unregister the first element in the array where i is zero.
Fixes d293b640ebd5 ('crypto: mxc-scc - add basic driver for the MXC SCC')
Signed-off-by Dan Carpenter <[email protected]>
drivers/crypto/mxc-scc.c +2 -2
@@ -616,7 +616,7 @@ static struct mxc_scc_crypto_tmpl *scc_crypto_algs[] = {static int mxc_scc_crypto_register (struct mxc_scc *scc) { -unsigned int i; +int i;int err =0 ;for (i =0 ; i <ARRAY_SIZE (scc_crypto_algs); i++) {
@@ -629,7 +629,7 @@ static int mxc_scc_crypto_register(struct mxc_scc *scc)return 0 ; err_out: -for (; i >0 ; i--) +while (--i >=0 )crypto_unregister_alg (&scc_crypto_algs[i]->alg);return err;