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
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> --- sorry for resend, mesed up previous sent. 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
Apparently Analagous Threads
- [klibc:update-dash] dash: Fix some cosmetic differences from upstream dash
- [klibc:update-dash] dash: Fix some cosmetic differences from upstream dash
- [PATCH] dash: Fix "pwd -P" breakage due to getcwd(0, 0) usage
- [klibc:update-dash] dash: eval: Use sh_warnx instead of warnx
- [LLVMdev] Building 176.gcc