This is an automated email from the ASF dual-hosted git repository. aguettouche pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git
commit 6d8d5af345a0053031aef301e4e97c381f8dee29 Author: Xiang Xiao <[email protected]> AuthorDate: Wed Jun 23 02:03:46 2021 +0800 libc/dirname: Handle the consecutive '/' correctly Signed-off-by: Xiang Xiao <[email protected]> Change-Id: I8387aca067e91724fb4656cd7af59bbd626ceffa --- libs/libc/libgen/lib_dirname.c | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/libs/libc/libgen/lib_dirname.c b/libs/libc/libgen/lib_dirname.c index a48ebb6..2fdfc5b 100644 --- a/libs/libc/libgen/lib_dirname.c +++ b/libs/libc/libgen/lib_dirname.c @@ -94,18 +94,23 @@ FAR char *dirname(FAR char *path) p = strrchr(path, '/'); if (p) { - /* Handle the case where the only '/' in the string is the at the - * beginning of the path. - */ - - if (p == path) + do { - return "/"; - } + /* Handle the case where the only '/' in the string is the at the + * beginning of the path. + */ - /* No, the directory component is the substring before the '/'. */ + if (p == path) + { + return "/"; + } + + /* No, the directory component is the substring before the '/'. */ + + *p-- = '\0'; + } + while (*p == '/'); - *p = '\0'; return path; }
