diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2014-06-23 14:18:26 +0400 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2014-06-23 14:18:26 +0400 |
commit | a1fd4b1a03d6f0af38fd1e1d9cc250f446bb0483 (patch) | |
tree | a199c31b8d9c91be0aa512b06bcc973e13ff9dd0 | |
parent | efaf85c5e60a8b9e51c002bdee73211481206717 (diff) |
* dcrt0.cc (insert_file): Fix resource leaks (CIDs 59987, 59988).
-rw-r--r-- | winsup/cygwin/ChangeLog | 4 | ||||
-rw-r--r-- | winsup/cygwin/dcrt0.cc | 3 |
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; } |