Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2014-06-23 14:18:26 +0400
committerCorinna Vinschen <corinna@vinschen.de>2014-06-23 14:18:26 +0400
commita1fd4b1a03d6f0af38fd1e1d9cc250f446bb0483 (patch)
treea199c31b8d9c91be0aa512b06bcc973e13ff9dd0
parentefaf85c5e60a8b9e51c002bdee73211481206717 (diff)
* dcrt0.cc (insert_file): Fix resource leaks (CIDs 59987, 59988).
-rw-r--r--winsup/cygwin/ChangeLog4
-rw-r--r--winsup/cygwin/dcrt0.cc3
2 files changed, 7 insertions, 0 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 1f63017a1..28870e529 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,5 +1,9 @@
2014-06-23 Corinna Vinschen <corinna@vinschen.de>
+ * dcrt0.cc (insert_file): Fix resource leaks (CIDs 59987, 59988).
+
+2014-06-23 Corinna Vinschen <corinna@vinschen.de>
+
* ldap.cc (CYG_LDAP_TIMEOUT): Set to 5 secs.
(CYG_LDAP_ENUM_TIMEOUT): New timeout value for enumeration only. Set
to 60 secs.
diff --git a/winsup/cygwin/dcrt0.cc b/winsup/cygwin/dcrt0.cc
index f72cbb0be..6e75ccee4 100644
--- a/winsup/cygwin/dcrt0.cc
+++ b/winsup/cygwin/dcrt0.cc
@@ -115,6 +115,7 @@ insert_file (char *name, char *&cmd)
size = GetFileSize (f, NULL);
if (size == 0xFFFFFFFF)
{
+ CloseHandle (f);
debug_printf ("couldn't get file size for '%s', %E", name);
return false;
}
@@ -123,6 +124,7 @@ insert_file (char *name, char *&cmd)
char *tmp = (char *) malloc (new_size);
if (!tmp)
{
+ CloseHandle (f);
debug_printf ("malloc failed, %E");
return false;
}
@@ -134,6 +136,7 @@ insert_file (char *name, char *&cmd)
CloseHandle (f);
if (!rf_result || (rf_read != size))
{
+ free (tmp);
debug_printf ("ReadFile failed, %E");
return false;
}