errno = EINVAL;
return 0;
}
- if (syscall(SYS_getcwd, buf, size) < 0) return 0;
+ long ret = syscall(SYS_getcwd, buf, size);
+ if (ret < 0)
+ return 0;
+ if (ret == 0 || buf[0] != '/') {
+ errno = ENOENT;
+ return 0;
+ }
return buf == tmp ? strdup(buf) : buf;
}