summaryrefslogtreecommitdiff
path: root/databases/ruby-bdb/files/patch-src__env.c
blob: be5ccea26a5edf485b951058a46acee953569b9e (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
--- src/env.c.orig	2011-04-06 19:35:39 UTC
+++ src/env.c
@@ -1121,9 +1121,11 @@ bdb_env_close(VALUE obj)
 {
     bdb_ENV *envst;
 
+#if defined(RUBY_SAFE_LEVEL_MAX) && RUBY_SAFE_LEVEL_MAX >= 4
     if (!OBJ_TAINTED(obj) && rb_safe_level() >= 4) {
 	rb_raise(rb_eSecurityError, "Insecure: can't close the environnement");
     }
+#endif
     GetEnvDB(obj, envst);
     bdb_final(envst);
     RDATA(obj)->dfree = free;
@@ -1517,12 +1519,16 @@ bdb_env_init(int argc, VALUE *argv, VALUE obj)
 	flags = NUM2INT(c);
         break;
     }
+#if defined(RUBY_SAFE_LEVEL_MAX) && RUBY_SAFE_LEVEL_MAX >= 4
     if (flags & DB_CREATE) {
 	rb_secure(4);
     }
+#endif
+#if defined(RUBY_SAFE_LEVEL_MAX) && RUBY_SAFE_LEVEL_MAX >= 1
     if (flags & DB_USE_ENVIRON) {
 	rb_secure(1);
     }
+#endif
 #ifndef BDB_NO_THREAD_COMPILE
     if (!(envst->options & BDB_NO_THREAD)) {
 	bdb_set_func(envst);
@@ -1658,7 +1664,9 @@ bdb_env_s_remove(int argc, VALUE *argv, VALUE obj)
     char *db_home;
     int flag = 0;
 
+#if defined(RUBY_SAFE_LEVEL_MAX) && RUBY_SAFE_LEVEL_MAX >= 2
     rb_secure(2);
+#endif
     if (rb_scan_args(argc, argv, "11", &a, &b) == 2) {
 	flag = NUM2INT(b);
     }