X-Git-Url: http://nsz.repo.hu/git/?p=musl;a=blobdiff_plain;f=src%2Funistd%2Fgetcwd.c;h=2e540cd41daef91efd37c7656f8f9274d4447ed6;hp=b64b560feeb5bf71d24f2354721a7b39d1f85004;hb=899b13cae77469a9ed1f076c456b66d567af69d8;hpb=051175d4fe2bdc7b09da9b303e88881ad4f936ff diff --git a/src/unistd/getcwd.c b/src/unistd/getcwd.c index b64b560f..2e540cd4 100644 --- a/src/unistd/getcwd.c +++ b/src/unistd/getcwd.c @@ -1,8 +1,13 @@ #include #include +#include +#include #include "syscall.h" char *getcwd(char *buf, size_t size) { - return syscall(SYS_getcwd, buf, size) < 0 ? NULL : buf; + char tmp[PATH_MAX]; + if (!buf) buf = tmp, size = PATH_MAX; + if (syscall(SYS_getcwd, buf, size) < 0) return 0; + return buf == tmp ? strdup(buf) : buf; }