summaryrefslogtreecommitdiff
path: root/databases/ruby-bdb/files/patch-src__env.c
diff options
context:
space:
mode:
Diffstat (limited to 'databases/ruby-bdb/files/patch-src__env.c')
-rw-r--r--databases/ruby-bdb/files/patch-src__env.c41
1 files changed, 41 insertions, 0 deletions
diff --git a/databases/ruby-bdb/files/patch-src__env.c b/databases/ruby-bdb/files/patch-src__env.c
new file mode 100644
index 000000000000..be5ccea26a5e
--- /dev/null
+++ b/databases/ruby-bdb/files/patch-src__env.c
@@ -0,0 +1,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);
+ }