diff options
author | Zoltan Varga <vargaz@gmail.com> | 2011-11-24 05:33:32 +0400 |
---|---|---|
committer | Zoltan Varga <vargaz@gmail.com> | 2011-11-24 05:38:49 +0400 |
commit | f3692b88199aa5ccc16f664edfe695b3e7b4917d (patch) | |
tree | 879ec5e554a0ad488797cdabad8edde128b014b9 | |
parent | ae25c90d61e09c7bb2620334ef7bb86f5b3eabbd (diff) |
Always free _WapiFileShare entries using _wapi_free_share_info (), otherwise zeroed out entries remain in the hash table when shared handles are disabled. Fixes #2170.
-rw-r--r-- | mono/io-layer/handles.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/mono/io-layer/handles.c b/mono/io-layer/handles.c index 52b12645ea1..faf92eeabec 100644 --- a/mono/io-layer/handles.c +++ b/mono/io-layer/handles.c @@ -1669,6 +1669,7 @@ _wapi_free_share_info (_WapiFileShare *share_info) file_share_hash_lock (); g_hash_table_remove (file_share_hash, share_info); file_share_hash_unlock (); + /* The hashtable dtor frees share_info */ } else { memset (share_info, '\0', sizeof(struct _WapiFileShare)); } @@ -1841,7 +1842,7 @@ static void _wapi_handle_check_share_by_pid (struct _WapiFileShare *share_info) g_message ("%s: Didn't find it, destroying entry", __func__); #endif - memset (share_info, '\0', sizeof(struct _WapiFileShare)); + _wapi_free_share_info (share_info); } } @@ -1971,7 +1972,7 @@ void _wapi_handle_check_share (struct _WapiFileShare *share_info, int fd) g_message ("%s: Didn't find it, destroying entry", __func__); #endif - memset (share_info, '\0', sizeof(struct _WapiFileShare)); + _wapi_free_share_info (share_info); } done: |