mirror of
https://github.com/ruby/ruby.git
synced 2026-01-26 04:07:58 +00:00
Now onigenc_single_byte_code_to_mbclen checks out-of-bound
This commit is contained in:
parent
76b1d4a481
commit
aaf47cca03
Notes:
git
2026-01-12 12:35:28 +00:00
@ -441,7 +441,7 @@ rb_str_format(int argc, const VALUE *argv, VALUE fmt)
|
||||
VALUE val = GETARG();
|
||||
VALUE tmp;
|
||||
unsigned int c;
|
||||
int n;
|
||||
int n, encidx;
|
||||
|
||||
tmp = rb_check_string_type(val);
|
||||
if (!NIL_P(tmp)) {
|
||||
@ -451,11 +451,13 @@ rb_str_format(int argc, const VALUE *argv, VALUE fmt)
|
||||
goto format_s1;
|
||||
}
|
||||
n = NUM2INT(val);
|
||||
if (n >= 0) n = rb_enc_codelen((c = n), enc);
|
||||
if (n >= 0) {
|
||||
n = rb_enc_codelen((c = n), enc);
|
||||
encidx = rb_ascii8bit_appendable_encoding_index(enc, c);
|
||||
}
|
||||
if (n <= 0) {
|
||||
rb_raise(rb_eArgError, "invalid character");
|
||||
}
|
||||
int encidx = rb_ascii8bit_appendable_encoding_index(enc, c);
|
||||
if (encidx >= 0 && encidx != rb_enc_to_index(enc)) {
|
||||
/* special case */
|
||||
rb_enc_associate_index(result, encidx);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user