From b56c466b2cf4eb2492bad1343561c660238fff16 Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Wed, 24 Aug 2005 17:45:11 +0000 Subject: [PATCH] * fhandler_virtual.cc (fhandler_virtual::close): Don't free filebuf if it's NULL. * pinfo.cc (_pinfo::commune_send): Fix test for incorrect number of bytes read from pipe. --- winsup/cygwin/ChangeLog | 7 +++++++ winsup/cygwin/fhandler_virtual.cc | 7 +++++-- winsup/cygwin/pinfo.cc | 4 ++-- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 9fff7adc3..942b38bcf 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,10 @@ +2005-08-24 Christopher Faylor + + * fhandler_virtual.cc (fhandler_virtual::close): Don't free filebuf if + it's NULL. + * pinfo.cc (_pinfo::commune_send): Fix test for incorrect number of + bytes read from pipe. + 2005-08-24 Corinna Vinschen * syscalls.cc (endusershell): Reset shell_fp to NULL to allow diff --git a/winsup/cygwin/fhandler_virtual.cc b/winsup/cygwin/fhandler_virtual.cc index ab078d616..494e81c58 100644 --- a/winsup/cygwin/fhandler_virtual.cc +++ b/winsup/cygwin/fhandler_virtual.cc @@ -169,8 +169,11 @@ fhandler_virtual::close () { if (!hExeced) { - cfree (filebuf); - filebuf = NULL; + if (filebuf) + { + cfree (filebuf); + filebuf = NULL; + } bufalloc = (size_t) -1; } return 0; diff --git a/winsup/cygwin/pinfo.cc b/winsup/cygwin/pinfo.cc index babed0cde..1a08f575b 100644 --- a/winsup/cygwin/pinfo.cc +++ b/winsup/cygwin/pinfo.cc @@ -731,13 +731,13 @@ _pinfo::commune_send (DWORD code, ...) char *p; for (p = res.s; n && ReadFile (fromthem, p, n, &nr, NULL); p += nr, n -= nr) continue; - if ((unsigned) (p - res.s) != n) + if (n) { __seterrno (); goto err; } + res.n = p - res.s; } - res.n = n; break; case PICOM_FIFO: {