瀏覽代碼

Fix sandboxing to work when running as a relay

This includes correctly allowing renaming secret_id_key and allowing the
eventfd2 and futex syscalls.  Fixes bug 16244; bugfix on 0.2.6.1-alpha.
Peter Palfrader 9 年之前
父節點
當前提交
a68e5323f8
共有 3 個文件被更改,包括 10 次插入1 次删除
  1. 7 0
      changes/bug16244
  2. 2 0
      src/common/sandbox.c
  3. 1 1
      src/or/main.c

+ 7 - 0
changes/bug16244

@@ -0,0 +1,7 @@
+  o Minor bugfixes (sandbox, relay):
+    - Fix sandboxing to work when running as a relay again.  This
+      includes correctly allowing renaming secret_id_key and
+      allowing the eventfd2 and futex syscalls.
+      Fixes bug 16244; bugfix on 0.2.6.1-alpha.
+      Patch by Peter Palfrader.
+

+ 2 - 0
src/common/sandbox.c

@@ -129,11 +129,13 @@ static int filter_nopar_gen[] = {
     SCMP_SYS(clone),
     SCMP_SYS(epoll_create),
     SCMP_SYS(epoll_wait),
+    SCMP_SYS(eventfd2),
     SCMP_SYS(fcntl),
     SCMP_SYS(fstat),
 #ifdef __NR_fstat64
     SCMP_SYS(fstat64),
 #endif
+    SCMP_SYS(futex),
     SCMP_SYS(getdents64),
     SCMP_SYS(getegid),
 #ifdef __NR_getegid32

+ 1 - 1
src/or/main.c

@@ -2984,7 +2984,7 @@ sandbox_init_filter(void)
   // orport
   if (server_mode(get_options())) {
 
-    OPEN_DATADIR2_SUFFIX("keys", "secret_id_key", "tmp");
+    OPEN_DATADIR2_SUFFIX("keys", "secret_id_key", ".tmp");
     OPEN_DATADIR2_SUFFIX("keys", "secret_onion_key", ".tmp");
     OPEN_DATADIR2_SUFFIX("keys", "secret_onion_key_ntor", ".tmp");
     OPEN_DATADIR2("keys", "secret_id_key.old");