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:
parent
f5a5311ee8
commit
f5f31fba12
@ -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);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user