cedric pushed a commit to branch master.
commit 681c8cda4c3ce6393f7d84efe6462810bf6bf1d7
Author: Jean-Philippe Andre <[email protected]>
Date: Fri Jun 14 14:38:21 2013 +0900
evas/cserve2: (shutdown) fix double free issue
glibc double free happens when shutting down cserve, while
requests are being processed. this is because the entry is
being deleted from the hash but the cancel request fails
(so it should be deleted again from the hash)
Another patch going to fix the double free.
---
src/bin/evas/evas_cserve2_cache.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/bin/evas/evas_cserve2_cache.c
b/src/bin/evas/evas_cserve2_cache.c
index fb76c55..ed8f70c 100644
--- a/src/bin/evas/evas_cserve2_cache.c
+++ b/src/bin/evas/evas_cserve2_cache.c
@@ -403,7 +403,11 @@ _request_failed(Entry *e, Error_Type type EINA_UNUSED)
else
continue;
- eina_hash_del_by_key(hash, &(ref->client_entry_id));
+ if (type != CSERVE2_REQUEST_CANCEL)
+ {
+ DBG("removing entry %u from hash", ref->client_entry_id);
+ eina_hash_del_by_key(hash, &(ref->client_entry_id));
+ }
}
}
--
------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:
Build for Windows Store.
http://p.sf.net/sfu/windows-dev2dev