2000-11-28 Sergei Organov <osv@javad.ru>

* libc/getcwd.c: Ensure _closedir(dir) is called even on
	error exit from the routine.
This commit is contained in:
Joel Sherrill
2000-11-28 21:49:27 +00:00
parent 66fedb46fe
commit e23afc3638
4 changed files with 17 additions and 3 deletions

View File

@@ -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);

View File

@@ -1,4 +1,9 @@
2000-11-28 Sergei Organov <osv@javad.ru>
* libc/getcwd.c: Ensure _closedir(dir) is called even on
error exit from the routine.
2000-11-25 Antti P Miettinen <antti.p.miettinen@nokia.com>
* libc/termios.c, libc/termiostypes.h: Task driver driver model

View File

@@ -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);

View File

@@ -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);