From ec2a57f4764ae33d232399166243898b23055cf3 Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Thu, 16 Oct 2014 15:00:59 +0000 Subject: * libc/unix/getcwd.c (getcwd): Close directory also in case of an error. --- newlib/libc/unix/getcwd.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'newlib/libc/unix/getcwd.c') diff --git a/newlib/libc/unix/getcwd.c b/newlib/libc/unix/getcwd.c index 92f1b20fd..63f342402 100644 --- a/newlib/libc/unix/getcwd.c +++ b/newlib/libc/unix/getcwd.c @@ -57,7 +57,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; @@ -237,6 +237,7 @@ getcwd (pt, size) bpt -= strlen (dp->d_name); bcopy (dp->d_name, bpt, strlen (dp->d_name)); (void) closedir (dir); + dir = NULL; /* Truncate any file name. */ *bup = '\0'; @@ -256,6 +257,8 @@ notfound: err: if (ptsize) free (pt); + if (dir) + (void) closedir (dir); free (up); return (char *) NULL; } -- cgit v1.2.3