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

Commit b9b73f7c authored by Eric W. Biederman's avatar Eric W. Biederman
Browse files

userns: Convert usb functionfs to use kuid/kgid where appropriate

parent 32d639c6
Loading
Loading
Loading
Loading
+16 −7
Original line number Diff line number Diff line
@@ -220,8 +220,8 @@ struct ffs_data {
	/* File permissions, written once when fs is mounted */
	struct ffs_file_perms {
		umode_t				mode;
		uid_t				uid;
		gid_t				gid;
		kuid_t				uid;
		kgid_t				gid;
	}				file_perms;

	/*
@@ -1143,10 +1143,19 @@ static int ffs_fs_parse_opts(struct ffs_sb_fill_data *data, char *opts)
			break;

		case 3:
			if (!memcmp(opts, "uid", 3))
				data->perms.uid = value;
			if (!memcmp(opts, "uid", 3)) {
				data->perms.uid = make_kuid(current_user_ns(), value);
				if (!uid_valid(data->perms.uid)) {
					pr_err("%s: unmapped value: %lu\n", opts, value);
					return -EINVAL;
				}
			}
			else if (!memcmp(opts, "gid", 3))
				data->perms.gid = value;
				data->perms.gid = make_kgid(current_user_ns(), value);
				if (!gid_valid(data->perms.gid)) {
					pr_err("%s: unmapped value: %lu\n", opts, value);
					return -EINVAL;
				}
			else
				goto invalid;
			break;
@@ -1175,8 +1184,8 @@ ffs_fs_mount(struct file_system_type *t, int flags,
	struct ffs_sb_fill_data data = {
		.perms = {
			.mode = S_IFREG | 0600,
			.uid = 0,
			.gid = 0
			.uid = GLOBAL_ROOT_UID,
			.gid = GLOBAL_ROOT_GID,
		},
		.root_mode = S_IFDIR | 0500,
	};
+0 −1
Original line number Diff line number Diff line
@@ -932,7 +932,6 @@ config UIDGID_CONVERTED
	depends on NET_9P = n

	# Filesystems
	depends on USB_FUNCTIONFS = n
	depends on DEVTMPFS = n
	depends on XENFS = n