diff options
author | Ulrich Drepper <drepper@redhat.com> | 2005-09-28 22:38:36 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2005-09-28 22:38:36 +0000 |
commit | df811ccf028ee73a9affe643b5f0c3ac55ef2ae8 (patch) | |
tree | 7932c481f73a3368ade30c01658d649185fa8c16 /sysdeps/unix | |
parent | 1812d50bc9ad034c8406f5e3de83b5a6c668f3a9 (diff) | |
download | glibc-df811ccf028ee73a9affe643b5f0c3ac55ef2ae8.tar.gz glibc-df811ccf028ee73a9affe643b5f0c3ac55ef2ae8.tar.xz glibc-df811ccf028ee73a9affe643b5f0c3ac55ef2ae8.zip |
Close descriptor in case of error.
Diffstat (limited to 'sysdeps/unix')
-rw-r--r-- | sysdeps/unix/fdopendir.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/sysdeps/unix/fdopendir.c b/sysdeps/unix/fdopendir.c index fa55a24cb6..3c481fcf0d 100644 --- a/sysdeps/unix/fdopendir.c +++ b/sysdeps/unix/fdopendir.c @@ -20,6 +20,8 @@ #include <errno.h> #include <sys/stat.h> +#include <not-cancel.h> + DIR * fdopendir (int fd) @@ -27,10 +29,12 @@ fdopendir (int fd) struct stat64 statbuf; if (__builtin_expect (__fxstat64 (_STAT_VER, fd, &statbuf), 0) < 0) - return NULL; + goto out; if (__builtin_expect (! S_ISDIR (statbuf.st_mode), 0)) { __set_errno (ENOTDIR); + out: + close_not_cancel_no_status (fd); return NULL; } |