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:
parent
0c97c8e335
commit
61d1dce5a2
2 changed files with 7 additions and 4 deletions
|
@ -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
6
hash.c
|
@ -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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in a new issue