[uClibc-cvs] uClibc/libc/sysdeps/linux/common getcwd.c,1.3,1.4

Erik Andersen andersen at codepoet.org
Wed Dec 4 02:34:29 UTC 2002


Update of /var/cvs/uClibc/libc/sysdeps/linux/common
In directory winder:/tmp/cvs-serv18714/libc/sysdeps/linux/common

Modified Files:
	getcwd.c 
Log Message:
Fix the other instance of getcwd


Index: getcwd.c
===================================================================
RCS file: /var/cvs/uClibc/libc/sysdeps/linux/common/getcwd.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- getcwd.c	4 Dec 2002 00:08:52 -0000	1.3
+++ getcwd.c	4 Dec 2002 02:34:26 -0000	1.4
@@ -151,29 +151,32 @@
 
 char *getcwd(char *buf, int size)
 {
-	struct stat st;
+    struct stat st;
 
-	if (size == 0) {
-		__set_errno(EINVAL);
-		return NULL;
-	}
-	if (size < 3) {
-		__set_errno(ERANGE);
-		return NULL;
+    if (size == 0) {
+	if (buf != NULL) {
+	    __set_errno(EINVAL);
+	    return NULL;
 	}
+	size = PATH_MAX;
+    }
+    if (size < 3) {
+	__set_errno(ERANGE);
+	return NULL;
+    }
 
-	if (buf == NULL) {
-		buf = malloc (size);
-		if (buf == NULL)
-			return NULL;
-	}
+    if (buf == NULL) {
+	buf = malloc (size);
+	if (buf == NULL)
+	    return NULL;
+    }
 
-	strcpy(buf, ".");
-	if (stat("/", &st) < 0) {
-		return NULL;
-	}
+    strcpy(buf, ".");
+    if (stat("/", &st) < 0) {
+	return NULL;
+    }
 
-	return recurser(buf, size, st.st_dev, st.st_ino);
+    return recurser(buf, size, st.st_dev, st.st_ino);
 }
 
 #endif




More information about the uClibc-cvs mailing list