mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
merge revision(s) 53083: [Backport #11823]
* io.c (parse_mode_enc): fix buffer overflow. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_1@53148 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
703a24a947
commit
7abafeb92d
4 changed files with 23 additions and 4 deletions
|
|
@ -1,3 +1,7 @@
|
|||
Wed Dec 16 16:13:04 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* io.c (parse_mode_enc): fix buffer overflow.
|
||||
|
||||
Wed Dec 16 16:10:52 2015 Eric Wong <e@80x24.org>
|
||||
|
||||
* insns.def (opt_case_dispatch): avoid converting Infinity
|
||||
|
|
|
|||
8
io.c
8
io.c
|
|
@ -5059,9 +5059,11 @@ parse_mode_enc(const char *estr, rb_encoding **enc_p, rb_encoding **enc2_p, int
|
|||
fmode |= FMODE_SETENC_BY_BOM;
|
||||
estr += 4;
|
||||
len -= 4;
|
||||
memcpy(encname, estr, len);
|
||||
encname[len] = '\0';
|
||||
estr = encname;
|
||||
if (len > 0 && len <= ENCODING_MAXNAMELEN) {
|
||||
memcpy(encname, estr, len);
|
||||
encname[len] = '\0';
|
||||
estr = encname;
|
||||
}
|
||||
}
|
||||
idx = rb_enc_find_index(estr);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2073,6 +2073,19 @@ EOT
|
|||
}
|
||||
end
|
||||
|
||||
def test_bom_too_long_utfname
|
||||
assert_separately([], <<-'end;') # do
|
||||
assert_warn(/Unsupported encoding/) {
|
||||
open(IO::NULL, "r:bom|utf-" + "x" * 10000) {}
|
||||
}
|
||||
end;
|
||||
assert_separately([], <<-'end;') # do
|
||||
assert_warn(/Unsupported encoding/) {
|
||||
open(IO::NULL, encoding: "bom|utf-" + "x" * 10000) {}
|
||||
}
|
||||
end;
|
||||
end
|
||||
|
||||
def test_cbuf
|
||||
with_tmpdir {
|
||||
fn = "tst"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#define RUBY_VERSION "2.1.8"
|
||||
#define RUBY_RELEASE_DATE "2015-12-16"
|
||||
#define RUBY_PATCHLEVEL 437
|
||||
#define RUBY_PATCHLEVEL 438
|
||||
|
||||
#define RUBY_RELEASE_YEAR 2015
|
||||
#define RUBY_RELEASE_MONTH 12
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue