Browse Source

Merge branch 'bug20710_025' into maint-0.2.9

Nick Mathewson 7 years ago
parent
commit
d6ca36defa
2 changed files with 7 additions and 2 deletions
  1. 4 0
      changes/bug20710_025
  2. 3 2
      src/common/sandbox.c

+ 4 - 0
changes/bug20710_025

@@ -0,0 +1,4 @@
+  o Minor bugfixes (memory leak, use-after-free, linux seccomp2 sandbox):
+    - Fix a memory leak and use-after-free error when removing entries
+      from the sandbox's getaddrinfo() cache. Fixes bug 20710; bugfix on
+      0.2.5.5-alpha. Patch from "cypherpunks".

+ 3 - 2
src/common/sandbox.c

@@ -1579,13 +1579,14 @@ sandbox_add_addrinfo(const char *name)
 void
 sandbox_free_getaddrinfo_cache(void)
 {
-  cached_getaddrinfo_item_t **next, **item;
+  cached_getaddrinfo_item_t **next, **item, *this;
 
   for (item = HT_START(getaddrinfo_cache, &getaddrinfo_cache);
        item;
        item = next) {
+    this = *item;
     next = HT_NEXT_RMV(getaddrinfo_cache, &getaddrinfo_cache, item);
-    cached_getaddrinfo_item_free(*item);
+    cached_getaddrinfo_item_free(this);
   }
 
   HT_CLEAR(getaddrinfo_cache, &getaddrinfo_cache);