Changeset 391 for python/trunk/Python/getcwd.c
- Timestamp:
- Mar 19, 2014, 11:31:01 PM (11 years ago)
- Location:
- python/trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
python/trunk
-
Property svn:mergeinfo
set to
/python/vendor/Python-2.7.6 merged eligible /python/vendor/current merged eligible
-
Property svn:mergeinfo
set to
-
python/trunk/Python/getcwd.c
r2 r391 27 27 getcwd(char *buf, int size) 28 28 { 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 29 char localbuf[MAXPATHLEN+1]; 30 char *ret; 31 32 if (size <= 0) { 33 errno = EINVAL; 34 return NULL; 35 } 36 ret = getwd(localbuf); 37 if (ret != NULL && strlen(localbuf) >= (size_t)size) { 38 errno = ERANGE; 39 return NULL; 40 } 41 if (ret == NULL) { 42 errno = EACCES; /* Most likely error */ 43 return NULL; 44 } 45 strncpy(buf, localbuf, size); 46 return buf; 47 47 } 48 48 … … 58 58 getcwd(char *buf, int size) 59 59 { 60 FILE *fp; 61 char *p; 62 int sts; 63 if (size <= 0) { 64 errno = EINVAL; 65 return NULL; 66 } 67 if ((fp = popen(PWD_CMD, "r")) == NULL) 68 return NULL; 69 if (fgets(buf, size, fp) == NULL || (sts = pclose(fp)) != 0) { 70 errno = EACCES; /* Most likely error */ 71 return NULL; 72 } 73 for (p = buf; *p != '\n'; p++) { 74 if (*p == '\0') { 75 errno = ERANGE; 76 return NULL; 77 } 78 } 79 *p = '\0'; 80 return buf; 60 FILE *fp; 61 char *p; 62 if (size <= 0) { 63 errno = EINVAL; 64 return NULL; 65 } 66 if ((fp = popen(PWD_CMD, "r")) == NULL) 67 return NULL; 68 if (fgets(buf, size, fp) == NULL || pclose(fp) != 0) { 69 errno = EACCES; /* Most likely error */ 70 return NULL; 71 } 72 for (p = buf; *p != '\n'; p++) { 73 if (*p == '\0') { 74 errno = ERANGE; 75 return NULL; 76 } 77 } 78 *p = '\0'; 79 return buf; 81 80 } 82 81
Note:
See TracChangeset
for help on using the changeset viewer.