From 38fe8b4a2dd28aebf52787c5b65cc79490fa53d3 Mon Sep 17 00:00:00 2001 From: Enrico Scholz Date: Sat, 8 May 2004 01:27:25 +0000 Subject: [PATCH] getRecentName(): use realpath(3) instead of errorprone 'chdir()' calls git-svn-id: http://svn.linux-vserver.org/svn/util-vserver/trunk@1543 94cd875c-1c1d-0410-91d2-eb244daf1a30 --- util-vserver/lib/getvservername.c | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/util-vserver/lib/getvservername.c b/util-vserver/lib/getvservername.c index 046f828..212c9df 100644 --- a/util-vserver/lib/getvservername.c +++ b/util-vserver/lib/getvservername.c @@ -61,21 +61,12 @@ getRecentName(char *start, char *end) } if (res==0) { - int old_fd = open(".", O_RDONLY); - *end = '\0'; - - if (old_fd!=-1 && - chdir(start)!=-1 && - getcwd(buf, sizeof buf)==buf) - start = buf; - - res = basename(start); + res = realpath(start, buf); + //printf("start='%s', res='%s'\n", start,res); + if (res==0) res = start; - if (old_fd!=-1) { - fchdir(old_fd); - close(old_fd); - } + res = basename(res); } return strdup(res); -- 1.8.1.5