From 1767b8d02834dfbd10c2857f1035c22148856d75 Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Thu, 10 Aug 2006 20:25:54 +0000 Subject: [PATCH] * pinfo.cc (_onreturn::~onreturn): Don't attempt to close a NULL handle. --- winsup/cygwin/ChangeLog | 5 +++++ winsup/cygwin/debug.cc | 2 +- winsup/cygwin/pinfo.cc | 3 ++- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index b01b31aee..8aed544f1 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,8 @@ +2006-08-10 Christopher Faylor + + * pinfo.cc (_onreturn::~onreturn): Don't attempt to close a NULL + handle. + 2006-08-10 Christopher Faylor * winsup.h: Turn on DEBUGGING by default for now. diff --git a/winsup/cygwin/debug.cc b/winsup/cygwin/debug.cc index 5e92d40a1..bb75b3162 100644 --- a/winsup/cygwin/debug.cc +++ b/winsup/cygwin/debug.cc @@ -240,7 +240,7 @@ close_handle (const char *func, int ln, HANDLE h, const char *name, bool force) #if 1 /* Uncomment to see CloseHandle failures */ if (!ret) - small_printf ("CloseHandle(%s) failed %s:%d\n", name, func, ln); + small_printf ("CloseHandle(%s) %p failed %s:%d, %E\n", name, h, func, ln); #endif return ret; } diff --git a/winsup/cygwin/pinfo.cc b/winsup/cygwin/pinfo.cc index 9440943d8..d73ad20aa 100644 --- a/winsup/cygwin/pinfo.cc +++ b/winsup/cygwin/pinfo.cc @@ -1097,10 +1097,11 @@ class _onreturn public: ~_onreturn () { - if (h) + if (h && *h) { CloseHandle (*h); *h = NULL; + h = NULL; } } void no_close_p_handle () {h = NULL;}