Skip to content

Commit

Permalink
* variable.c (rb_path2class): get rid of dangling pointer caused by
Browse files Browse the repository at this point in the history
	  optimized out value.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8_6@13146 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
  • Loading branch information
shyouhei committed Aug 21, 2007
1 parent e78da70 commit ae2d632
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 4 deletions.
5 changes: 5 additions & 0 deletions ChangeLog
@@ -1,3 +1,8 @@
Wed Aug 22 08:52:02 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>

* variable.c (rb_path2class): get rid of dangling pointer caused by
optimized out value.

Wed Aug 22 08:51:20 2007 NAKAMURA Usaku <usa@ruby-lang.org>

* ext/dl/lib/dl/win32.rb: seems that dl doesn't accept void argument.
Expand Down
11 changes: 8 additions & 3 deletions variable.c
Expand Up @@ -241,16 +241,21 @@ rb_path2class(path)
const char *pbeg, *p;
ID id;
VALUE c = rb_cObject;
VALUE str = 0;

if (path[0] == '#') {
rb_raise(rb_eArgError, "can't retrieve anonymous class %s", path);
}
pbeg = p = path;
while (*p) {
VALUE str;

while (*p && *p != ':') p++;
str = rb_str_new(pbeg, p-pbeg);
if (str) {
RSTRING(str)->len = 0;
rb_str_cat(str, pbeg, p-pbeg);
}
else {
str = rb_str_new(pbeg, p-pbeg);
}
id = rb_intern(RSTRING(str)->ptr);
if (p[0] == ':') {
if (p[1] != ':') goto undefined_class;
Expand Down
2 changes: 1 addition & 1 deletion version.h
Expand Up @@ -2,7 +2,7 @@
#define RUBY_RELEASE_DATE "2007-08-22"
#define RUBY_VERSION_CODE 186
#define RUBY_RELEASE_CODE 20070822
#define RUBY_PATCHLEVEL 47
#define RUBY_PATCHLEVEL 48

#define RUBY_VERSION_MAJOR 1
#define RUBY_VERSION_MINOR 8
Expand Down

0 comments on commit ae2d632

Please sign in to comment.