Skip to content

Commit 157f807

Browse files
committed
digest: load digest library using Kernel#require
The digest library is a default gem now, too. Therefore we can't simply use rb_require() to load it, but we should use Kernel#require instead. This change is based on the suggestion by David Rodríguez in ruby/digest@1617261#commitcomment-57778397
1 parent 6880dba commit 157f807

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

ext/openssl/ossl_digest.c

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -313,8 +313,6 @@ ossl_digest_block_length(VALUE self)
313313
void
314314
Init_ossl_digest(void)
315315
{
316-
rb_require("digest");
317-
318316
#if 0
319317
mOSSL = rb_define_module("OpenSSL");
320318
eOSSLError = rb_define_class_under(mOSSL, "OpenSSLError", rb_eStandardError);
@@ -433,6 +431,12 @@ Init_ossl_digest(void)
433431
* digest2 = sha256.digest(data2)
434432
*
435433
*/
434+
435+
/*
436+
* Digest::Class is defined by the digest library. rb_require() cannot be
437+
* used here because it bypasses RubyGems.
438+
*/
439+
rb_funcall(Qnil, rb_intern_const("require"), 1, rb_str_new_cstr("digest"));
436440
cDigest = rb_define_class_under(mOSSL, "Digest", rb_path2class("Digest::Class"));
437441
/* Document-class: OpenSSL::Digest::DigestError
438442
*

0 commit comments

Comments
 (0)