Commit 388bb19b authored by Johan Hovold's avatar Johan Hovold Committed by Vasily Gorbik

s390/zcrypt: fix memleak at release

If a process is interrupted while accessing the crypto device and the
global ap_perms_mutex is contented, release() could return early and
fail to free related resources.

Fixes: 00fab235 ("s390/zcrypt: multiple zcrypt device nodes support")
Cc: <stable@vger.kernel.org> # 4.19
Cc: Harald Freudenberger <freude@linux.ibm.com>
Signed-off-by: default avatarJohan Hovold <johan@kernel.org>
Signed-off-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: default avatarVasily Gorbik <gor@linux.ibm.com>
parent 7d194c21
...@@ -522,8 +522,7 @@ static int zcrypt_release(struct inode *inode, struct file *filp) ...@@ -522,8 +522,7 @@ static int zcrypt_release(struct inode *inode, struct file *filp)
if (filp->f_inode->i_cdev == &zcrypt_cdev) { if (filp->f_inode->i_cdev == &zcrypt_cdev) {
struct zcdn_device *zcdndev; struct zcdn_device *zcdndev;
if (mutex_lock_interruptible(&ap_perms_mutex)) mutex_lock(&ap_perms_mutex);
return -ERESTARTSYS;
zcdndev = find_zcdndev_by_devt(filp->f_inode->i_rdev); zcdndev = find_zcdndev_by_devt(filp->f_inode->i_rdev);
mutex_unlock(&ap_perms_mutex); mutex_unlock(&ap_perms_mutex);
if (zcdndev) { if (zcdndev) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment