[klibc] [PATCH] dash: cd fix getpwd

y at dual.stro.at y at dual.stro.at
Thu Apr 1 22:26:26 PDT 2010


From: maximilian attems <max at stro.at>

On review of klibc dash changes:
"Hmm, this breaks the non-glibc case. You're now returning a pointer to a
string on the stack which is illegal." Herbert Xu

Use upstream dash way.

Signed-off-by: maximilian attems <max at stro.at>
Cc: Herbert Xu <herbert at gondor.apana.org.au>
---
 usr/dash/cd.c |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/usr/dash/cd.c b/usr/dash/cd.c
index 8a23110..ba9a1bc 100644
--- a/usr/dash/cd.c
+++ b/usr/dash/cd.c
@@ -253,12 +253,13 @@ getpwd()
 {
 #ifdef __GLIBC__
 	char *dir = getcwd(0, 0);
+	if (dir)
+		return dir;
 #else
 	char buf[PATH_MAX];
-	char *dir = getcwd(buf, sizeof(buf));
+	if(getcwd(buf, sizeof(buf)))
+		return savestr(buf);
 #endif
-	if (dir)
-		return dir;
 	sh_warnx("getcwd() failed: %s", strerror(errno));
 	return nullstr;
 }
-- 
1.7.0.3



More information about the klibc mailing list