From: akr@... Date: 2014-08-16T01:25:37+00:00 Subject: [ruby-core:64408] [ruby-trunk - Bug #10111] gdbm truncated UTF-8 data problem Issue #10111 has been updated by Akira Tanaka. The data is not truncated but has a different encoding (as nobu pointed at first). ``` % cat t.gdbm.rb # coding: utf-8 require 'gdbm' data = "\xEA\xB0\x80ABCDEF" db = GDBM.new( 'test.db', 0666 ) db['key'] = data p [db['key'].b, db['key'].encoding] p [data.b, data.encoding] throw 'data truncated!!' if db['key'] != data % ./ruby -v t.gdbm.rb ruby 2.2.0dev (2014-08-15 trunk 47187) [x86_64-linux] ["\xEA\xB0\x80ABCDEF", #] ["\xEA\xB0\x80ABCDEF", #] t.gdbm.rb:10:in `throw': uncaught throw "data truncated!!" (ArgumentError) from t.gdbm.rb:10:in `
' ``` dbm behaves same as gdbm. ``` % cat t.dbm.rb # coding: utf-8 require 'dbm' data = "\xEA\xB0\x80ABCDEF" db = DBM.new( 'test.db', 0666 ) db['key'] = data p [db['key'].b, db['key'].encoding] p [data.b, data.encoding] throw 'data truncated!!' if db['key'] != data % ./ruby -v t.dbm.rb ruby 2.2.0dev (2014-08-15 trunk 47187) [x86_64-linux] ["\xEA\xB0\x80ABCDEF", #] ["\xEA\xB0\x80ABCDEF", #] t.dbm.rb:10:in `throw': uncaught throw "data truncated!!" (ArgumentError) from t.dbm.rb:10:in `
' ``` ---------------------------------------- Bug #10111: gdbm truncated UTF-8 data problem https://bugs.ruby-lang.org/issues/10111#change-48365 * Author: KiHyun Kang * Status: Open * Priority: Normal * Assignee: Aaron Patterson * Category: ext * Target version: * ruby -v: ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-linux] * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN ---------------------------------------- Reproducible script is here. ~~~ # coding: utf-8 require 'gdbm' data = "\xEA\xB0\x80ABCDEF" db = GDBM.new( 'test.db', 0666 ) db['key'] = data throw 'data truncated!!' if db['key'] != data ~~~ -- https://bugs.ruby-lang.org/