Fixed file descriptor leak that occurs after certain types of failures.

PR:		3516
Submitted by:	Matthew Flatt <mflatt@cs.rice.edu>
This commit is contained in:
David Greenman 1997-08-15 05:21:16 +00:00
parent f5a5311ee8
commit f5f31fba12
1 changed files with 5 additions and 2 deletions

View File

@ -56,7 +56,7 @@ getcwd(pt, size)
size_t size;
{
register struct dirent *dp;
register DIR *dir;
register DIR *dir = NULL;
register dev_t dev;
register ino_t ino;
register int first;
@ -213,7 +213,8 @@ getcwd(pt, size)
*--bpt = '/';
bpt -= dp->d_namlen;
bcopy(dp->d_name, bpt, dp->d_namlen);
(void)closedir(dir);
(void) closedir(dir);
dir = NULL;
/* Truncate any file name. */
*bup = '\0';
@ -231,6 +232,8 @@ notfound:
err:
if (ptsize)
free(pt);
if (dir)
(void) closedir(dir);
free(up);
return (NULL);
}