This is an automated email from the git hooks/post-receive script. sthibault pushed a commit to branch dde in repository hurd.
commit 074f0ea9799b2fa5297eb120d68e0a97cf1b40ac Author: Justus Winter <[email protected]> Date: Sun Oct 9 00:13:46 2016 +0200 Normalize path of translators. * libdiskfs/dir-lookup.c (diskfs_S_dir_lookup): Strip trailing slashes. * libnetfs/dir-lookup.c (netfs_S_dir_lookup): Likewise. --- libdiskfs/dir-lookup.c | 8 +++++++- libnetfs/dir-lookup.c | 8 +++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/libdiskfs/dir-lookup.c b/libdiskfs/dir-lookup.c index 63bba78..a0c368b 100644 --- a/libdiskfs/dir-lookup.c +++ b/libdiskfs/dir-lookup.c @@ -286,6 +286,7 @@ diskfs_S_dir_lookup (struct protid *dircred, { char *translator_path = strdupa (relpath); + char *end; char *complete_path; if (nextname != NULL) { @@ -293,12 +294,17 @@ diskfs_S_dir_lookup (struct protid *dircred, NEXTNAME points to the next component, locate the end of the current component and use it to trim TRANSLATOR_PATH. */ - char *end = nextname; + end = nextname; while (*end != 0) end--; translator_path[end - filename_start] = '\0'; } + /* Trim trailing slashes. */ + end = &translator_path[strlen (translator_path) - 1]; + while (*end == '/' && end >= translator_path) + *end = '\0', end--; + if (dircred->po->path == NULL || !strcmp (dircred->po->path,".")) /* dircred is the root directory. */ diff --git a/libnetfs/dir-lookup.c b/libnetfs/dir-lookup.c index 321ee6e..bfac2ac 100644 --- a/libnetfs/dir-lookup.c +++ b/libnetfs/dir-lookup.c @@ -277,6 +277,7 @@ netfs_S_dir_lookup (struct protid *dircred, { char *translator_path = strdupa (relpath); + char *end; char *complete_path; if (nextname != NULL) { @@ -284,12 +285,17 @@ netfs_S_dir_lookup (struct protid *dircred, NEXTNAME points to the next component, locate the end of the current component and use it to trim TRANSLATOR_PATH. */ - char *end = nextname; + end = nextname; while (*end != 0) end--; translator_path[end - filename_start] = '\0'; } + /* Trim trailing slashes. */ + end = &translator_path[strlen (translator_path) - 1]; + while (*end == '/' && end >= translator_path) + *end = '\0', end--; + if (dircred->po->path == NULL || !strcmp (dircred->po->path,".")) /* dircred is the root directory. */ -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-hurd/hurd.git
