[haiku-commits] Change in haiku[master]: kernel/vfs: lstat a symlinked dir with a trailing slash should traverse

  • From: Gerrit <review@xxxxxxxxxxxxxxxxxxx>
  • To: waddlesplash <waddlesplash@xxxxxxxxx>, haiku-commits@xxxxxxxxxxxxx
  • Date: Thu, 23 Jun 2022 17:38:22 +0000

From Jérôme Duval <jerome.duval@xxxxxxxxx>:

Jérôme Duval has uploaded this change for review. ( 
https://review.haiku-os.org/c/haiku/+/5395 ;)


Change subject: kernel/vfs: lstat a symlinked dir with a trailing slash should 
traverse
......................................................................

kernel/vfs: lstat a symlinked dir with a trailing slash should traverse

golang's TestSymlinkWithTrailingSlash exhibits the bug.
---
M src/system/kernel/fs/vfs.cpp
1 file changed, 3 insertions(+), 1 deletion(-)



  git pull ssh://git.haiku-os.org:22/haiku refs/changes/95/5395/1

diff --git a/src/system/kernel/fs/vfs.cpp b/src/system/kernel/fs/vfs.cpp
index 938507c..c994180 100644
--- a/src/system/kernel/fs/vfs.cpp
+++ b/src/system/kernel/fs/vfs.cpp
@@ -2179,7 +2179,9 @@
                for (nextPath = path + 1; *nextPath != '\0' && *nextPath != '/';
                                nextPath++);

+               bool directoryFound = false;
                if (*nextPath == '/') {
+                       directoryFound = true;
                        *nextPath = '\0';
                        do
                                nextPath++;
@@ -2226,7 +2228,7 @@
                // If the new node is a symbolic link, resolve it (if we've 
been told
                // to do it)
                if (S_ISLNK(nextVnode->Type())
-                       && (traverseLeafLink || nextPath[0] != '\0')) {
+                       && (traverseLeafLink || directoryFound)) {
                        size_t bufferSize;
                        char* buffer;


--
To view, visit https://review.haiku-os.org/c/haiku/+/5395
To unsubscribe, or for help writing mail filters, visit 
https://review.haiku-os.org/settings

Gerrit-Project: haiku
Gerrit-Branch: master
Gerrit-Change-Id: I7e16bad9857e9be042fc215a587c861bc4eef716
Gerrit-Change-Number: 5395
Gerrit-PatchSet: 1
Gerrit-Owner: Jérôme Duval <jerome.duval@xxxxxxxxx>
Gerrit-MessageType: newchange

Other related posts:

  • » [haiku-commits] Change in haiku[master]: kernel/vfs: lstat a symlinked dir with a trailing slash should traverse - Gerrit