summaryrefslogtreecommitdiffstats
path: root/cpukit/libcsupport/src/getcwd.c
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2000-11-28 21:49:27 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2000-11-28 21:49:27 +0000
commite23afc3638a79daa7550f5c5a8a20c976db89318 (patch)
tree7f8f69ed3dc7d78d86a543f849608205f9578344 /cpukit/libcsupport/src/getcwd.c
parent2000-11-28 Chris Johns <ccj@acm.org> (diff)
downloadrtems-e23afc3638a79daa7550f5c5a8a20c976db89318.tar.bz2
2000-11-28 Sergei Organov <osv@javad.ru>
* libc/getcwd.c: Ensure _closedir(dir) is called even on error exit from the routine.
Diffstat (limited to '')
-rw-r--r--cpukit/libcsupport/src/getcwd.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/cpukit/libcsupport/src/getcwd.c b/cpukit/libcsupport/src/getcwd.c
index 26b564a760..18189d3e04 100644
--- a/cpukit/libcsupport/src/getcwd.c
+++ b/cpukit/libcsupport/src/getcwd.c
@@ -74,7 +74,7 @@ getcwd (pt, size)
size_t size;
{
register struct dirent *dp;
- register DIR *dir;
+ register DIR *dir = 0;
register dev_t dev;
register ino_t ino;
register int first;
@@ -254,6 +254,7 @@ getcwd (pt, size)
bpt -= strlen (dp->d_name);
bcopy (dp->d_name, bpt, strlen (dp->d_name));
(void) _closedir (dir);
+ dir = 0;
/* Truncate any file name. */
*bup = '\0';
@@ -271,6 +272,8 @@ notfound:
/* FALLTHROUGH */
err:
+ if(dir)
+ (void) _closedir (dir);
if (ptsize)
free (pt);
free (up);