← Commit list

406ea15e2

Martin Santesson
Martin Santesson
2013-01-16
SUCCESS Duration: 177s

Subject

mount: add unc option to CIFS mount (needed for Linux 3.4+)

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

util-linux/mount.c+15 -1
@@ -1822,10 +1822,24 @@ static int singlemount(struct mntent *mp, int ignore_busy)
hostname = mp->mnt_fsname + 2;
len = strcspn(hostname, "/\\");
- if (len == 0 || hostname[len] == '\0')
+ if (len == 0 // 1st char is a [back]slash (IOW: empty hostname)
+ || hostname[len] == '\0' // no [back]slash after hostname
+ || hostname[len+1] == '\0' // empty share name
+ ) {
goto report_error;
+ }
c = hostname[len];
hostname[len] = '\0';
+
+ // "unc=\\hostname\share" option is mandatory
+ // after CIFS option parsing was rewritten in Linux 3.4.
+ // Must pass it to the kernel. Must use backslashes.
+ {
+ char *unc = xasprintf("unc=\\\\%s\\%s", hostname, hostname + len + 1);
+ parse_mount_options(unc, &filteropts);
+ if (ENABLE_FEATURE_CLEAN_UP) free(unc);
+ }
+
lsa = host2sockaddr(hostname, 0);
hostname[len] = c;
if (!lsa)