mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2025-02-24 06:48:05 +01:00
Unmap microdesc cache before replacing it.
If we do a replace-then-munmap, windows will never actually rewrite the microdesc cache. Found by wanoskarnet; bugfix on 0.2.2.6-alpha.
This commit is contained in:
parent
b47f574c1e
commit
bdff7e3299
2 changed files with 9 additions and 2 deletions
6
changes/md_cache_replace
Normal file
6
changes/md_cache_replace
Normal file
|
@ -0,0 +1,6 @@
|
|||
o Minor bugfixes
|
||||
- Avoid a bug that would keep us from replacing a microdescriptor
|
||||
cache on Windows. (We would try to replace the file while still
|
||||
holding it open. That's fine on Unix, but Windows doesn't let us
|
||||
do that.) Bugfix on 0.2.2.6-alpha; bug found by wanoskarnet.
|
||||
|
|
@ -399,10 +399,11 @@ microdesc_cache_rebuild(microdesc_cache_t *cache, int force)
|
|||
smartlist_add(wrote, md);
|
||||
}
|
||||
|
||||
finish_writing_to_file(open_file); /*XXX Check me.*/
|
||||
|
||||
if (cache->cache_content)
|
||||
tor_munmap_file(cache->cache_content);
|
||||
|
||||
finish_writing_to_file(open_file); /*XXX Check me.*/
|
||||
|
||||
cache->cache_content = tor_mmap_file(cache->cache_fname);
|
||||
|
||||
if (!cache->cache_content && smartlist_len(wrote)) {
|
||||
|
|
Loading…
Add table
Reference in a new issue