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

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZoltan Varga <vargaz@gmail.com>2011-11-24 05:33:32 +0400
committerZoltan Varga <vargaz@gmail.com>2011-11-24 05:38:49 +0400
commitf3692b88199aa5ccc16f664edfe695b3e7b4917d (patch)
tree879ec5e554a0ad488797cdabad8edde128b014b9
parentae25c90d61e09c7bb2620334ef7bb86f5b3eabbd (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.c5
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: