From c34fea5a636d98607ee6e41c78acc9d5ca8fb756 Mon Sep 17 00:00:00 2001 From: Paulo Alcantara Date: Wed, 14 Nov 2018 14:03:40 -0200 Subject: cifs: Skip any trailing backslashes from UNC When extracting hostname from UNC, check for leading backslashes before trying to remove them. Signed-off-by: Paulo Alcantara Reviewed-by: Aurelien Aptel Signed-off-by: Steve French --- fs/cifs/connect.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'fs/cifs/connect.c') diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c index 944188d6200c..bab4422f5815 100644 --- a/fs/cifs/connect.c +++ b/fs/cifs/connect.c @@ -1044,7 +1044,12 @@ extract_hostname(const char *unc) /* skip double chars at beginning of string */ /* BB: check validity of these bytes? */ - src = unc + 2; + if (strlen(unc) < 3) + return ERR_PTR(-EINVAL); + for (src = unc; *src && *src == '\\'; src++) + ; + if (!*src) + return ERR_PTR(-EINVAL); /* delimiter between hostname and sharename is always '\\' now */ delim = strchr(src, '\\'); -- cgit v1.2.3-55-g7522