ecryptfs: fix unlocking in error paths
PATCH 1/1 ecryptfs: fix unlocking in error paths
Thanks to Josef Bacik for finding these.
A couple of ecryptfs error paths don't properly unlock things they locked.
Signed-off-by Eric Sandeen <[email protected]>
Cc Josef Bacik <[email protected]>
---
fs/ecryptfs/crypto.c +4 -4
@@ -799,7 +799,7 @@ int ecryptfs_init_crypt_ctx(struct ecryp rc =ecryptfs_crypto_api_algify_cipher_name (&full_alg_name, crypt_stat->cipher,"cbc" );if (rc) - goto out; + goto out_unlock; crypt_stat->tfm =crypto_alloc_blkcipher (full_alg_name,0 ,CRYPTO_ALG_ASYNC );kfree (full_alg_name);
@@ -808,12 +808,12 @@ int ecryptfs_init_crypt_ctx(struct ecrypecryptfs_printk (KERN_ERR ,"cryptfs: init_crypt_ctx(): " "Error initializing cipher [%s]\n" , crypt_stat->cipher); -mutex_unlock (&crypt_stat->cs_tfm_mutex); - goto out; + goto out_unlock; }crypto_blkcipher_set_flags (crypt_stat->tfm,CRYPTO_TFM_REQ_WEAK_KEY ); -mutex_unlock (&crypt_stat->cs_tfm_mutex); rc =0 ; +out_unlock: +mutex_unlock (&crypt_stat->cs_tfm_mutex); out:return rc; }
fs/ecryptfs/messaging.c +1 -0
@@ -427,6 +427,7 @@ int ecryptfs_init_messaging(unsigned intif (!ecryptfs_daemon_id_hash) { rc = -ENOMEM ;ecryptfs_printk (KERN_ERR ,"Failed to allocate memory\n" ); +mutex_unlock (&ecryptfs_daemon_id_hash_mux); goto out; }for (i =0 ; i < ecryptfs_hash_buckets; i++)