diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-10-02 03:49:15 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-10-02 03:49:15 +0000 |
commit | fc05c485445330312060918aa729f8041e2d17ba (patch) | |
tree | 883110b737f81f4ab45efada98a26110bed59f8a /string.c | |
parent | 4d6a6e82b4421dee488aa33a40466b5632730943 (diff) | |
download | ruby-fc05c485445330312060918aa729f8041e2d17ba.tar.gz ruby-fc05c485445330312060918aa729f8041e2d17ba.tar.xz ruby-fc05c485445330312060918aa729f8041e2d17ba.zip |
* string.c (rb_str_sum): check was done with false pointer.
[ruby-dev:24383]
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@6978 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'string.c')
-rw-r--r-- | string.c | 8 |
1 files changed, 4 insertions, 4 deletions
@@ -4405,7 +4405,7 @@ rb_str_sum(argc, argv, str) { VALUE vbits; int bits; - char *p, *pend; + char *ptr, *p, *pend; long len; if (rb_scan_args(argc, argv, "01", &vbits) == 0) { @@ -4413,7 +4413,7 @@ rb_str_sum(argc, argv, str) } else bits = NUM2INT(vbits); - p = RSTRING(str)->ptr; + ptr = p = RSTRING(str)->ptr; len = RSTRING(str)->len; pend = p + len; if (bits > sizeof(long)*CHAR_BIT) { @@ -4424,7 +4424,7 @@ rb_str_sum(argc, argv, str) mod = rb_funcall(mod, '-', 1, INT2FIX(1)); while (p < pend) { - str_mod_check(str, p, len); + str_mod_check(str, ptr, len); res = rb_funcall(res, '+', 1, INT2FIX((unsigned int)*p)); p++; } @@ -4439,7 +4439,7 @@ rb_str_sum(argc, argv, str) mod = -1; } while (p < pend) { - str_mod_check(str, p, len); + str_mod_check(str, ptr, len); res += (unsigned int)*p; p++; } |