Index: uspace/lib/posix/unistd.c
===================================================================
--- uspace/lib/posix/unistd.c	(revision 75406dc862a4d7c240dc10c1d197f3007aac3f49)
+++ uspace/lib/posix/unistd.c	(revision 955c2b0051040bfbd062e5c3d182ad78cff2ed77)
@@ -111,5 +111,6 @@
 	}
 	char *ret = getcwd(buf, size);
-	if (ret == NULL) {
+	/* Check errno to avoid shadowing possible ENOMEM. */
+	if (ret == NULL && errno == EOK) {
 		errno = ERANGE;
 	}
@@ -271,8 +272,8 @@
 		if (fd < 0) {
 			errno = -fd;
-			return 0;
+			return -1;
 		}
 		close(fd);
-		return 1;
+		return 0;
 	} else {
 		/* Invalid amode argument. */
