mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2025-01-26 09:54:22 +03:00
Check for trailing '/' in mount.zfs
When run with a root '/' cwd the mount.zfs helper would strip not only the '/' but also the next character from the dataset name. For example, '/tank' was changed to 'ank' instead of just 'tank'. Originally, this was done for the '/tmp' cwd case where we needed to strip the '/' following the cwd. For example '/tmp/tank' needed to remove the '/tmp' cwd plus 1 character for the '/'. This change fixes the problem by checking the cwd and if it ends in a '/' it does not strip and extra character. Otherwise it will strip the next character. I believe this should only ever be true for the root directory. Closes #148
This commit is contained in:
parent
3eae80100b
commit
a6cba65cca
@ -218,10 +218,14 @@ static char *
|
||||
parse_dataset(char *dataset)
|
||||
{
|
||||
char cwd[PATH_MAX];
|
||||
int len;
|
||||
|
||||
(void) getcwd(cwd, PATH_MAX);
|
||||
if (!strncmp(cwd, dataset, strlen(cwd)))
|
||||
return (dataset + strlen(cwd) + 1);
|
||||
len = strlen(cwd);
|
||||
|
||||
/* Do not add one when cwd already ends in a trailing '/' */
|
||||
if (!strncmp(cwd, dataset, len))
|
||||
return (dataset + len + (cwd[len-1] != '/'));
|
||||
|
||||
return (dataset);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user