[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