From f96eb335e1ea050b781904d589bf8413131bee48 Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Fri, 17 Feb 2012 23:56:28 -0500 Subject: fix get_current_dir_name behavior --- src/misc/get_current_dir_name.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'src/misc') diff --git a/src/misc/get_current_dir_name.c b/src/misc/get_current_dir_name.c index 212edf31..e0f463b5 100644 --- a/src/misc/get_current_dir_name.c +++ b/src/misc/get_current_dir_name.c @@ -2,11 +2,15 @@ #include #include #include +#include char *get_current_dir_name(void) { + struct stat a, b; char buf[PATH_MAX]; - char* res = getenv("PWD"); - if(res && *res) return strdup(res); + char *res = getenv("PWD"); + if (res && *res && !stat(res, &a) && !stat(".", &b) + && (a.st_dev == b.st_dev) && (a.st_ino == b.st_ino)) + return strdup(res); if(!getcwd(buf, sizeof(buf))) return NULL; return strdup(buf); } -- cgit v1.2.1