1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

digest.c: fix #== for non-string arguments

* ext/digest/digest.c (rb_digest_instance_equal):
  fix #== for non-string arguments. [ruby-core:62967] [Bug #9913]
* test/digest/test_digest.rb: add test for above.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46368 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
eregon 2014-06-06 21:05:48 +00:00
parent fd8b254705
commit bc211f3634
3 changed files with 13 additions and 1 deletions

View file

@ -1,3 +1,10 @@
Sat Jun 7 06:03:11 2014 Benoit Daloze <eregontp@gmail.com>
* ext/digest/digest.c (rb_digest_instance_equal):
fix #== for non-string arguments. [ruby-core:62967] [Bug #9913]
* test/digest/test_digest.rb: add test for above.
Fri Jun 6 22:19:26 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
* compile.c (private_recv_p): check by node type, instead of a

View file

@ -370,9 +370,11 @@ rb_digest_instance_equal(VALUE self, VALUE other)
if (rb_obj_is_kind_of(other, rb_mDigest_Instance) == Qtrue) {
str1 = rb_digest_instance_digest(0, 0, self);
str2 = rb_digest_instance_digest(0, 0, other);
} else {
} else if (!NIL_P(rb_check_string_type(other))) {
str1 = rb_digest_instance_to_s(self);
str2 = other;
} else {
return Qfalse;
}
/* never blindly assume that subclass methods return strings */

View file

@ -69,6 +69,9 @@ module TestDigest
assert_equal(md1, md1.clone, self.class::ALGO)
bug9913 = '[ruby-core:62967] [Bug #9913]'
assert_not_equal(md1, nil, bug9913)
md2 = self.class::ALGO.new
md2 << "A"