diff options
-rw-r--r-- | include/libgen.h | 4 | ||||
-rw-r--r-- | src/libgen.c | 4 |
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. * |