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

* hash.c (hash_alloc): was using tbl pointer without

initialization.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6951 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
matz 2004-09-22 04:52:17 +00:00
parent 0c97c8e335
commit 61d1dce5a2
2 changed files with 7 additions and 4 deletions

View file

@ -1,3 +1,8 @@
Wed Sep 22 13:50:49 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
* hash.c (hash_alloc): was using tbl pointer without
initialization.
Wed Sep 22 13:38:12 2004 Yukihiro Matsumoto <matz@ruby-lang.org> Wed Sep 22 13:38:12 2004 Yukihiro Matsumoto <matz@ruby-lang.org>
* hash.c (rb_hash_rehash): add iteration check. [ruby-dev:24301] * hash.c (rb_hash_rehash): add iteration check. [ruby-dev:24301]

6
hash.c
View file

@ -187,7 +187,7 @@ hash_alloc(klass)
OBJSETUP(hash, klass, T_HASH); OBJSETUP(hash, klass, T_HASH);
hash->ifnone = Qnil; hash->ifnone = Qnil;
hash->tbl = 0; hash->tbl = st_init_table(&objhash);
return (VALUE)hash; return (VALUE)hash;
} }
@ -202,12 +202,10 @@ static void
rb_hash_modify(hash) rb_hash_modify(hash)
VALUE hash; VALUE hash;
{ {
if (!RHASH(hash)->tbl) rb_raise(rb_eTypeError, "uninitialized Hash");
if (OBJ_FROZEN(hash)) rb_error_frozen("hash"); if (OBJ_FROZEN(hash)) rb_error_frozen("hash");
if (!OBJ_TAINTED(hash) && rb_safe_level() >= 4) if (!OBJ_TAINTED(hash) && rb_safe_level() >= 4)
rb_raise(rb_eSecurityError, "Insecure: can't modify hash"); rb_raise(rb_eSecurityError, "Insecure: can't modify hash");
if (RHASH(hash)->tbl == 0) {
RHASH(hash)->tbl = st_init_table(&objhash);
}
} }
/* /*