ソースを参照

Use an enum for inherit_result_out.

Nick Mathewson 6 年 前
コミット
76912bf140
2 ファイル変更16 行追加13 行削除
  1. 4 3
      src/lib/malloc/map_anon.c
  2. 12 10
      src/lib/malloc/map_anon.h

+ 4 - 3
src/lib/malloc/map_anon.c

@@ -118,7 +118,7 @@ nodump_mem(void *mem, size_t sz)
  * *<b>inherit_result_out</b>.
  */
 static int
-noinherit_mem(void *mem, size_t sz, unsigned *inherit_result_out)
+noinherit_mem(void *mem, size_t sz, inherit_res_t *inherit_result_out)
 {
 #ifdef FLAG_ZERO
   int r = MINHERIT(mem, sz, FLAG_ZERO);
@@ -163,10 +163,11 @@ noinherit_mem(void *mem, size_t sz, unsigned *inherit_result_out)
  * anonymity that Tor is trying to provide.]
  */
 void *
-tor_mmap_anonymous(size_t sz, unsigned flags, unsigned *inherit_result_out)
+tor_mmap_anonymous(size_t sz, unsigned flags,
+                   inherit_res_t *inherit_result_out)
 {
   void *ptr;
-  unsigned itmp=0;
+  inherit_res_t itmp=0;
   if (inherit_result_out == NULL) {
     inherit_result_out = &itmp;
   }

+ 12 - 10
src/lib/malloc/map_anon.h

@@ -31,15 +31,17 @@
  */
 #define ANONMAP_NOINHERIT (1u<<1)
 
-/** Possible value for inherit_result_out: the memory will be kept
- * by any child process. */
-#define INHERIT_RES_KEEP 0
-/** Possible value for inherit_result_out: the memory will be dropped in
- * the child process. Attempting to access it will likely cause a segfault. */
-#define INHERIT_RES_DROP 1
-/** Possible value for inherit_result_out: the memory will be cleared in
- * the child process. */
-#define INHERIT_RES_ZERO 2
+typedef enum {
+  /** Possible value for inherit_result_out: the memory will be kept
+   * by any child process. */
+  INHERIT_RES_KEEP=0,
+  /** Possible value for inherit_result_out: the memory will be dropped in the
+   * child process. Attempting to access it will likely cause a segfault. */
+  INHERIT_RES_DROP,
+  /** Possible value for inherit_result_out: the memory will be cleared in
+   * the child process. */
+  INHERIT_RES_ZERO
+} inherit_res_t;
 
 /* Here we define the NOINHERIT_CAN_FAIL macro if and only if
  * it's possible that ANONMAP_NOINHERIT might yield inheritable memory.
@@ -63,7 +65,7 @@
 #endif
 
 void *tor_mmap_anonymous(size_t sz, unsigned flags,
-                         unsigned *inherit_result_out);
+                         inherit_res_t *inherit_result_out);
 void tor_munmap_anonymous(void *mapping, size_t sz);
 
 #endif /* !defined(TOR_MAP_ANON_H) */