forked from Imagelibrary/rtems
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:
@@ -74,7 +74,7 @@ getcwd (pt, size)
|
|||||||
size_t size;
|
size_t size;
|
||||||
{
|
{
|
||||||
register struct dirent *dp;
|
register struct dirent *dp;
|
||||||
register DIR *dir;
|
register DIR *dir = 0;
|
||||||
register dev_t dev;
|
register dev_t dev;
|
||||||
register ino_t ino;
|
register ino_t ino;
|
||||||
register int first;
|
register int first;
|
||||||
@@ -254,6 +254,7 @@ getcwd (pt, size)
|
|||||||
bpt -= strlen (dp->d_name);
|
bpt -= strlen (dp->d_name);
|
||||||
bcopy (dp->d_name, bpt, strlen (dp->d_name));
|
bcopy (dp->d_name, bpt, strlen (dp->d_name));
|
||||||
(void) _closedir (dir);
|
(void) _closedir (dir);
|
||||||
|
dir = 0;
|
||||||
|
|
||||||
/* Truncate any file name. */
|
/* Truncate any file name. */
|
||||||
*bup = '\0';
|
*bup = '\0';
|
||||||
@@ -271,6 +272,8 @@ notfound:
|
|||||||
/* FALLTHROUGH */
|
/* FALLTHROUGH */
|
||||||
|
|
||||||
err:
|
err:
|
||||||
|
if(dir)
|
||||||
|
(void) _closedir (dir);
|
||||||
if (ptsize)
|
if (ptsize)
|
||||||
free (pt);
|
free (pt);
|
||||||
free (up);
|
free (up);
|
||||||
|
|||||||
@@ -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>
|
2000-11-25 Antti P Miettinen <antti.p.miettinen@nokia.com>
|
||||||
|
|
||||||
* libc/termios.c, libc/termiostypes.h: Task driver driver model
|
* libc/termios.c, libc/termiostypes.h: Task driver driver model
|
||||||
|
|||||||
@@ -74,7 +74,7 @@ getcwd (pt, size)
|
|||||||
size_t size;
|
size_t size;
|
||||||
{
|
{
|
||||||
register struct dirent *dp;
|
register struct dirent *dp;
|
||||||
register DIR *dir;
|
register DIR *dir = 0;
|
||||||
register dev_t dev;
|
register dev_t dev;
|
||||||
register ino_t ino;
|
register ino_t ino;
|
||||||
register int first;
|
register int first;
|
||||||
@@ -254,6 +254,7 @@ getcwd (pt, size)
|
|||||||
bpt -= strlen (dp->d_name);
|
bpt -= strlen (dp->d_name);
|
||||||
bcopy (dp->d_name, bpt, strlen (dp->d_name));
|
bcopy (dp->d_name, bpt, strlen (dp->d_name));
|
||||||
(void) _closedir (dir);
|
(void) _closedir (dir);
|
||||||
|
dir = 0;
|
||||||
|
|
||||||
/* Truncate any file name. */
|
/* Truncate any file name. */
|
||||||
*bup = '\0';
|
*bup = '\0';
|
||||||
@@ -271,6 +272,8 @@ notfound:
|
|||||||
/* FALLTHROUGH */
|
/* FALLTHROUGH */
|
||||||
|
|
||||||
err:
|
err:
|
||||||
|
if(dir)
|
||||||
|
(void) _closedir (dir);
|
||||||
if (ptsize)
|
if (ptsize)
|
||||||
free (pt);
|
free (pt);
|
||||||
free (up);
|
free (up);
|
||||||
|
|||||||
@@ -74,7 +74,7 @@ getcwd (pt, size)
|
|||||||
size_t size;
|
size_t size;
|
||||||
{
|
{
|
||||||
register struct dirent *dp;
|
register struct dirent *dp;
|
||||||
register DIR *dir;
|
register DIR *dir = 0;
|
||||||
register dev_t dev;
|
register dev_t dev;
|
||||||
register ino_t ino;
|
register ino_t ino;
|
||||||
register int first;
|
register int first;
|
||||||
@@ -254,6 +254,7 @@ getcwd (pt, size)
|
|||||||
bpt -= strlen (dp->d_name);
|
bpt -= strlen (dp->d_name);
|
||||||
bcopy (dp->d_name, bpt, strlen (dp->d_name));
|
bcopy (dp->d_name, bpt, strlen (dp->d_name));
|
||||||
(void) _closedir (dir);
|
(void) _closedir (dir);
|
||||||
|
dir = 0;
|
||||||
|
|
||||||
/* Truncate any file name. */
|
/* Truncate any file name. */
|
||||||
*bup = '\0';
|
*bup = '\0';
|
||||||
@@ -271,6 +272,8 @@ notfound:
|
|||||||
/* FALLTHROUGH */
|
/* FALLTHROUGH */
|
||||||
|
|
||||||
err:
|
err:
|
||||||
|
if(dir)
|
||||||
|
(void) _closedir (dir);
|
||||||
if (ptsize)
|
if (ptsize)
|
||||||
free (pt);
|
free (pt);
|
||||||
free (up);
|
free (up);
|
||||||
|
|||||||
Reference in New Issue
Block a user