aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/libgen.h4
-rw-r--r--src/libgen.c4
2 files changed, 8 insertions, 0 deletions
diff --git a/include/libgen.h b/include/libgen.h
index d417739..182f192 100644
--- a/include/libgen.h
+++ b/include/libgen.h
@@ -64,6 +64,10 @@ char* dirname(char*)
* '..' directory components that should resolve up beyond '/',
* are removed. Note that this can in fact mean that the resulting
* path is not the same file if the processes is `chroot`:ed.
+ * Additionally, and more important, there is no consideration for
+ * symbolic links. For example, '/a/b/c/..' resolves to '/a/b',
+ * but if any of the directors are symbolic links, the real path
+ * is not necessarily '/a/b'.
*
* This is a slibc extension.
*
diff --git a/src/libgen.c b/src/libgen.c
index 9f24da6..41f3dd0 100644
--- a/src/libgen.c
+++ b/src/libgen.c
@@ -113,6 +113,10 @@ char* dirname(char* filename)
* '..' directory components that should resolve up beyond '/',
* are removed. Note that this can in fact mean that the resulting
* path is not the same file if the processes is `chroot`:ed.
+ * Additionally, and more important, there is no consideration for
+ * symbolic links. For example, '/a/b/c/..' resolves to '/a/b',
+ * but if any of the directors are symbolic links, the real path
+ * is not necessarily '/a/b'.
*
* This is a slibc extension.
*