diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-10-01 15:56:05 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-10-01 15:56:05 +0000 |
commit | e59cacd6d71bdad060570cfcb494c44e0da2a535 (patch) | |
tree | bc13d8db7a8b41ff261c473ce6501751bf98cf8b /eval.c | |
parent | 78ad11898621cd6478f284b3b73746a491e7e617 (diff) | |
download | ruby-e59cacd6d71bdad060570cfcb494c44e0da2a535.tar.gz ruby-e59cacd6d71bdad060570cfcb494c44e0da2a535.tar.xz ruby-e59cacd6d71bdad060570cfcb494c44e0da2a535.zip |
* string.c (rb_str_sum): string may be altered. [ruby-dev:24381]
* eval.c (rb_f_eval): defer pointer retrieval to prevent unsafe
sourcefile string modification. [ruby-dev:24373]
* io.c (io_read): block string buffer modification during
rb_io_fread() by freezing it temporarily. [ruby-dev:24366]
* io.c (rb_io_s_popen): mode argument may be altered.
[ruby-dev:24375]
* file.c (rb_file_s_basename): ext argument may be altered.
[ruby-dev:24377]
* enum.c (enum_sort_by): use NODE instead of 2 element arrays.
[ruby-dev:24378]
* string.c (rb_str_chomp_bang): StringValue() may change the
receiver. [ruby-dev:24371]
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@6976 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'eval.c')
-rw-r--r-- | eval.c | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -6187,12 +6187,13 @@ rb_f_eval(argc, argv, self) SafeStringValue(src); } if (argc >= 3) { - file = StringValuePtr(vfile); + StringValue(vfile); } if (argc >= 4) { line = NUM2INT(vline); } + if (!NIL_P(vfile)) file = RSTRING(vfile)->ptr; if (NIL_P(scope) && ruby_frame->prev) { struct FRAME *prev; VALUE val; |