Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8d39d801 authored by Miklos Szeredi's avatar Miklos Szeredi
Browse files

cuse: kill connection on initialization error



Luca Risolia reported that a CUSE daemon will continue to run even if
initialization of the emulated device failes for some reason (e.g. the device
number is already registered by another driver).

This patch disconnects the fuse device on error, which will make the userspace
CUSE daemon exit, albeit without indication about what the problem was.

Reported-by: default avatarLuca Risolia <luca.risolia@studio.unibo.it>
Signed-off-by: default avatarMiklos Szeredi <mszeredi@suse.cz>
parent bbd99797
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -396,7 +396,7 @@ static void cuse_process_init_reply(struct fuse_conn *fc, struct fuse_req *req)
err_region:
	unregister_chrdev_region(devt, 1);
err:
	fc->conn_error = 1;
	fuse_conn_kill(fc);
	goto out;
}

@@ -532,8 +532,6 @@ static int cuse_channel_release(struct inode *inode, struct file *file)
		cdev_del(cc->cdev);
	}

	/* kill connection and shutdown channel */
	fuse_conn_kill(&cc->fc);
	rc = fuse_dev_release(inode, file);	/* puts the base reference */

	return rc;