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

Commit 8999e04f authored by Latchesar Ionkov's avatar Latchesar Ionkov Committed by Eric Van Hensbergen
Browse files

9p: use copy of the options value instead of original



v9fs_parse_options function uses strsep which modifies the value of the
v9ses->options field. That modified value is later passed to the function
that creates the transport potentially making the transport creation
function to fail.

This patch creates a copy of v9ses->option field that v9fs_parse_options
function uses instead of the original value.

Signed-off-by: default avatarLatchesar Ionkov <lucho@ionkov.net>
Acked-by: default avatarEric Van Hensbergen <ericvh@gmail.com>
parent dda6b022
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -82,7 +82,7 @@ static match_table_t tokens = {

static void v9fs_parse_options(struct v9fs_session_info *v9ses)
{
	char *options = v9ses->options;
	char *options;
	substring_t args[MAX_OPT_ARGS];
	char *p;
	int option;
@@ -96,9 +96,10 @@ static void v9fs_parse_options(struct v9fs_session_info *v9ses)
	v9ses->cache = 0;
	v9ses->trans = v9fs_default_trans();

	if (!options)
	if (!v9ses->options)
		return;

	options = kstrdup(v9ses->options, GFP_KERNEL);
	while ((p = strsep(&options, ",")) != NULL) {
		int token;
		if (!*p)
@@ -169,6 +170,7 @@ static void v9fs_parse_options(struct v9fs_session_info *v9ses)
			continue;
		}
	}
	kfree(options);
}

/**