ruby-dev (Japanese) list archive (unofficial mirror)
 help / color / mirror / Atom feed
* [ruby-dev:50424] [Ruby trunk Bug#14388] 不正エンコーディング文字列から切り出した正当なエンコーディング文字列が invalid encoding になる
       [not found] <redmine.issue-14388.20180124081436@ruby-lang.org>
@ 2018-01-24  8:14 ` tommy
  2018-01-25  3:52 ` [ruby-dev:50430] " tommy
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 5+ messages in thread
From: tommy @ 2018-01-24  8:14 UTC (permalink / raw)
  To: ruby-dev

Issue #14388 has been reported by tommy (Masahiro Tomita).

----------------------------------------
Bug #14388: 不正エンコーディング文字列から切り出した正当なエンコーディング文字列が invalid encoding になる
https://bugs.ruby-lang.org/issues/14388

* Author: tommy (Masahiro Tomita)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: ruby 2.5.0p0 (2017-12-25 revision 61468) [x86_64-linux]
* Backport: 2.3: UNKNOWN, 2.4: UNKNOWN, 2.5: UNKNOWN
----------------------------------------
~~~ ruby
data = "\xFFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
p data.encoding               #=> #<Encoding:UTF-8>
p data                        #=> "\xFFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
p data.valid_encoding?        #=> false
data2 = data[1..-1]
p data2                       #=> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
p data2.valid_encoding?       #=> false
data3 = data2 + ""
p data3.valid_encoding?       #=> true
~~~

data は invalid ですが、data から切り出した data2 は valid のはずです。
末尾に空文字列を追加すると valid になります。



-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [ruby-dev:50430] [Ruby trunk Bug#14388] 不正エンコーディング文字列から切り出した正当なエンコーディング文字列が invalid encoding になる
       [not found] <redmine.issue-14388.20180124081436@ruby-lang.org>
  2018-01-24  8:14 ` [ruby-dev:50424] [Ruby trunk Bug#14388] 不正エンコーディング文字列から切り出した正当なエンコーディング文字列が invalid encoding になる tommy
@ 2018-01-25  3:52 ` tommy
  2018-02-19  6:58 ` [ruby-dev:50478] " naruse
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 5+ messages in thread
From: tommy @ 2018-01-25  3:52 UTC (permalink / raw)
  To: ruby-dev

Issue #14388 has been updated by tommy (Masahiro Tomita).


Rubyの内部のコードにはあんまり詳しくないんですけど、これで直ると思うのですがどうでしょうか。

```diff
diff --git a/string.c b/string.c
index 82fa603ada..9079387fac 100644
--- a/string.c
+++ b/string.c
@@ -2560,6 +2560,7 @@ str_substr(VALUE str, long beg, long len, int empty)
 	str2 = str_new_shared(rb_obj_class(str2), str2);
 	RSTRING(str2)->as.heap.ptr += ofs;
 	RSTRING(str2)->as.heap.len = len;
+	ENC_CODERANGE_CLEAR(str2);
     }
     else {
 	if (!len && !empty) return Qnil;
```

----------------------------------------
Bug #14388: 不正エンコーディング文字列から切り出した正当なエンコーディング文字列が invalid encoding になる
https://bugs.ruby-lang.org/issues/14388#change-69807

* Author: tommy (Masahiro Tomita)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: ruby 2.5.0p0 (2017-12-25 revision 61468) [x86_64-linux]
* Backport: 2.3: UNKNOWN, 2.4: UNKNOWN, 2.5: UNKNOWN
----------------------------------------
~~~ ruby
data = "\xFFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
p data.encoding               #=> #<Encoding:UTF-8>
p data                        #=> "\xFFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
p data.valid_encoding?        #=> false
data2 = data[1..-1]
p data2                       #=> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
p data2.valid_encoding?       #=> false
data3 = data2 + ""
p data3.valid_encoding?       #=> true
~~~

data は invalid ですが、data から切り出した data2 は valid のはずです。
末尾に空文字列を追加すると valid になります。



-- 
https://bugs.ruby-lang.org/

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [ruby-dev:50478] [Ruby trunk Bug#14388] 不正エンコーディング文字列から切り出した正当なエンコーディング文字列が invalid encoding になる
       [not found] <redmine.issue-14388.20180124081436@ruby-lang.org>
  2018-01-24  8:14 ` [ruby-dev:50424] [Ruby trunk Bug#14388] 不正エンコーディング文字列から切り出した正当なエンコーディング文字列が invalid encoding になる tommy
  2018-01-25  3:52 ` [ruby-dev:50430] " tommy
@ 2018-02-19  6:58 ` naruse
  2018-03-21 15:04 ` [ruby-dev:50509] " nagachika00
  2018-03-28  5:51 ` [ruby-dev:50515] " usa
  4 siblings, 0 replies; 5+ messages in thread
From: naruse @ 2018-02-19  6:58 UTC (permalink / raw)
  To: ruby-dev

Issue #14388 has been updated by naruse (Yui NARUSE).

Backport changed from 2.3: REQUIRED, 2.4: REQUIRED, 2.5: REQUIRED to 2.3: REQUIRED, 2.4: REQUIRED, 2.5: DONE

ruby_2_5 r62483 merged revision(s) 62040.

----------------------------------------
Bug #14388: 不正エンコーディング文字列から切り出した正当なエンコーディング文字列が invalid encoding になる
https://bugs.ruby-lang.org/issues/14388#change-70427

* Author: tommy (Masahiro Tomita)
* Status: Closed
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: ruby 2.5.0p0 (2017-12-25 revision 61468) [x86_64-linux]
* Backport: 2.3: REQUIRED, 2.4: REQUIRED, 2.5: DONE
----------------------------------------
~~~ ruby
data = "\xFFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
p data.encoding               #=> #<Encoding:UTF-8>
p data                        #=> "\xFFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
p data.valid_encoding?        #=> false
data2 = data[1..-1]
p data2                       #=> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
p data2.valid_encoding?       #=> false
data3 = data2 + ""
p data3.valid_encoding?       #=> true
~~~

data は invalid ですが、data から切り出した data2 は valid のはずです。
末尾に空文字列を追加すると valid になります。



-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [ruby-dev:50509] [Ruby trunk Bug#14388] 不正エンコーディング文字列から切り出した正当なエンコーディング文字列が invalid encoding になる
       [not found] <redmine.issue-14388.20180124081436@ruby-lang.org>
                   ` (2 preceding siblings ...)
  2018-02-19  6:58 ` [ruby-dev:50478] " naruse
@ 2018-03-21 15:04 ` nagachika00
  2018-03-28  5:51 ` [ruby-dev:50515] " usa
  4 siblings, 0 replies; 5+ messages in thread
From: nagachika00 @ 2018-03-21 15:04 UTC (permalink / raw)
  To: ruby-dev

Issue #14388 has been updated by nagachika (Tomoyuki Chikanaga).

Backport changed from 2.3: REQUIRED, 2.4: REQUIRED, 2.5: DONE to 2.3: REQUIRED, 2.4: DONE, 2.5: DONE

ruby_2_4 r62875 merged revision(s) 62040.

----------------------------------------
Bug #14388: 不正エンコーディング文字列から切り出した正当なエンコーディング文字列が invalid encoding になる
https://bugs.ruby-lang.org/issues/14388#change-71146

* Author: tommy (Masahiro Tomita)
* Status: Closed
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: ruby 2.5.0p0 (2017-12-25 revision 61468) [x86_64-linux]
* Backport: 2.3: REQUIRED, 2.4: DONE, 2.5: DONE
----------------------------------------
~~~ ruby
data = "\xFFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
p data.encoding               #=> #<Encoding:UTF-8>
p data                        #=> "\xFFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
p data.valid_encoding?        #=> false
data2 = data[1..-1]
p data2                       #=> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
p data2.valid_encoding?       #=> false
data3 = data2 + ""
p data3.valid_encoding?       #=> true
~~~

data は invalid ですが、data から切り出した data2 は valid のはずです。
末尾に空文字列を追加すると valid になります。



-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [ruby-dev:50515] [Ruby trunk Bug#14388] 不正エンコーディング文字列から切り出した正当なエンコーディング文字列が invalid encoding になる
       [not found] <redmine.issue-14388.20180124081436@ruby-lang.org>
                   ` (3 preceding siblings ...)
  2018-03-21 15:04 ` [ruby-dev:50509] " nagachika00
@ 2018-03-28  5:51 ` usa
  4 siblings, 0 replies; 5+ messages in thread
From: usa @ 2018-03-28  5:51 UTC (permalink / raw)
  To: ruby-dev

Issue #14388 has been updated by usa (Usaku NAKAMURA).

Backport changed from 2.3: REQUIRED, 2.4: DONE, 2.5: DONE to 2.3: DONE, 2.4: DONE, 2.5: DONE

ruby_2_3 r62946 merged revision(s) 62040.

----------------------------------------
Bug #14388: 不正エンコーディング文字列から切り出した正当なエンコーディング文字列が invalid encoding になる
https://bugs.ruby-lang.org/issues/14388#change-71273

* Author: tommy (Masahiro Tomita)
* Status: Closed
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: ruby 2.5.0p0 (2017-12-25 revision 61468) [x86_64-linux]
* Backport: 2.3: DONE, 2.4: DONE, 2.5: DONE
----------------------------------------
~~~ ruby
data = "\xFFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
p data.encoding               #=> #<Encoding:UTF-8>
p data                        #=> "\xFFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
p data.valid_encoding?        #=> false
data2 = data[1..-1]
p data2                       #=> "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
p data2.valid_encoding?       #=> false
data3 = data2 + ""
p data3.valid_encoding?       #=> true
~~~

data は invalid ですが、data から切り出した data2 は valid のはずです。
末尾に空文字列を追加すると valid になります。



-- 
https://bugs.ruby-lang.org/

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2018-03-28  5:51 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <redmine.issue-14388.20180124081436@ruby-lang.org>
2018-01-24  8:14 ` [ruby-dev:50424] [Ruby trunk Bug#14388] 不正エンコーディング文字列から切り出した正当なエンコーディング文字列が invalid encoding になる tommy
2018-01-25  3:52 ` [ruby-dev:50430] " tommy
2018-02-19  6:58 ` [ruby-dev:50478] " naruse
2018-03-21 15:04 ` [ruby-dev:50509] " nagachika00
2018-03-28  5:51 ` [ruby-dev:50515] " usa

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).