mirror of
https://git.FreeBSD.org/ports.git
synced 2024-10-18 19:49:40 +00:00
databases/rubygem-bdb1: fix runtime error with ruby 3.0: Undefined symbol "rb_secure"
This commit is contained in:
parent
ffb9e31366
commit
892450efb3
@ -1,6 +1,6 @@
|
||||
PORTNAME= bdb1
|
||||
PORTVERSION= 0.2.5
|
||||
PORTREVISION= 1
|
||||
PORTREVISION= 2
|
||||
CATEGORIES= databases rubygems
|
||||
MASTER_SITES= RG
|
||||
|
||||
|
@ -1,6 +1,18 @@
|
||||
--- ext/bdb1/bdb1.c.orig 2016-01-18 21:34:35 UTC
|
||||
--- ext/bdb1/bdb1.c.orig 2022-05-09 10:22:04 UTC
|
||||
+++ ext/bdb1/bdb1.c
|
||||
@@ -752,15 +752,15 @@ bdb1_s_alloc(VALUE obj)
|
||||
@@ -733,9 +733,11 @@ bdb1_close(VALUE obj)
|
||||
VALUE opt;
|
||||
bdb1_DB *dbst;
|
||||
|
||||
+#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 database");
|
||||
}
|
||||
+#endif
|
||||
Data_Get_Struct(obj, bdb1_DB, dbst);
|
||||
bdb1_i_close(dbst);
|
||||
return Qnil;
|
||||
@@ -752,15 +754,15 @@ bdb1_s_alloc(VALUE obj)
|
||||
dbst->options |= BDB1_NOT_OPEN;
|
||||
cl = obj;
|
||||
while (cl) {
|
||||
@ -19,3 +31,54 @@
|
||||
dbst->type = DB_RECNO;
|
||||
break;
|
||||
}
|
||||
@@ -878,7 +880,9 @@ bdb1_put(int argc, VALUE *argv, VALUE obj)
|
||||
int ret, flags;
|
||||
db_recno_t recno;
|
||||
|
||||
+#if defined(RUBY_SAFE_LEVEL_MAX) && RUBY_SAFE_LEVEL_MAX >= 4
|
||||
rb_secure(4);
|
||||
+#endif
|
||||
GetDB(obj, dbst);
|
||||
if (rb_scan_args(argc, argv, "21", &a, &b, &c) == 3)
|
||||
flags = NUM2INT(c);
|
||||
@@ -1071,7 +1075,9 @@ bdb1_del(VALUE obj, VALUE a)
|
||||
db_recno_t recno;
|
||||
volatile VALUE c = Qnil;
|
||||
|
||||
+#if defined(RUBY_SAFE_LEVEL_MAX) && RUBY_SAFE_LEVEL_MAX >= 4
|
||||
rb_secure(4);
|
||||
+#endif
|
||||
GetDB(obj, dbst);
|
||||
if (dbst->type == DB_HASH) {
|
||||
rb_warning("delete can give strange result with DB_HASH");
|
||||
@@ -1112,7 +1118,9 @@ bdb1_delete_if(VALUE obj)
|
||||
int ret, ret1, flags;
|
||||
db_recno_t recno;
|
||||
|
||||
+#if defined(RUBY_SAFE_LEVEL_MAX) && RUBY_SAFE_LEVEL_MAX >= 4
|
||||
rb_secure(4);
|
||||
+#endif
|
||||
GetDB(obj, dbst);
|
||||
INIT_RECNO(dbst, key, recno);
|
||||
DATA_ZERO(data);
|
||||
@@ -1138,7 +1146,9 @@ bdb1_clear(VALUE obj)
|
||||
int ret, value, flags;
|
||||
db_recno_t recno;
|
||||
|
||||
+#if defined(RUBY_SAFE_LEVEL_MAX) && RUBY_SAFE_LEVEL_MAX >= 4
|
||||
rb_secure(4);
|
||||
+#endif
|
||||
GetDB(obj, dbst);
|
||||
INIT_RECNO(dbst, key, recno);
|
||||
DATA_ZERO(data);
|
||||
@@ -1536,8 +1546,10 @@ bdb1_sync(VALUE obj)
|
||||
{
|
||||
bdb1_DB *dbst;
|
||||
|
||||
+#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 sync the database");
|
||||
+#endif
|
||||
GetDB(obj, dbst);
|
||||
bdb1_test_error(dbst->dbp->sync(dbst->dbp, 0));
|
||||
return Qtrue;
|
||||
|
@ -1,6 +1,6 @@
|
||||
--- ext/bdb1/recnum.c.orig
|
||||
--- ext/bdb1/recnum.c.orig 2022-05-09 10:22:04 UTC
|
||||
+++ ext/bdb1/recnum.c
|
||||
@@ -17,7 +17,7 @@
|
||||
@@ -17,7 +17,7 @@ bdb1_recnum_init(int argc, VALUE *argv, VALUE obj)
|
||||
argc++;
|
||||
}
|
||||
rb_hash_aset(argv[argc - 1], array, INT2FIX(0));
|
||||
@ -8,4 +8,14 @@
|
||||
+ if (rb_hash_lookup2(argv[argc - 1], sarray, Qundef) != Qundef) {
|
||||
rb_hash_aset(argv[argc - 1], sarray, INT2FIX(0));
|
||||
}
|
||||
rb_hash_aset(argv[argc - 1], rb_str_new2("set_flags"), INT2FIX(DB_RENUMBER));
|
||||
return bdb1_init(argc, argv, obj);
|
||||
@@ -134,7 +134,9 @@ bdb1_intern_shift_pop(VALUE obj, int depart, int len)
|
||||
db_recno_t recno;
|
||||
VALUE res;
|
||||
|
||||
+#if defined(RUBY_SAFE_LEVEL_MAX) && RUBY_SAFE_LEVEL_MAX >= 4
|
||||
rb_secure(4);
|
||||
+#endif
|
||||
GetDB(obj, dbst);
|
||||
INIT_RECNO(dbst, key, recno);
|
||||
DATA_ZERO(data);
|
||||
|
Loading…
Reference in New Issue
Block a user