Bug #9636

Fiddle::Importer で Segmentation fault が発生する

Added by Kiyoteru Inoue about 1 year ago. Updated 9 months ago.

[ruby-dev:48040]
Status:Rejected
Priority:Normal
Assignee:-
ruby -v:2.1.0 Backport:1.9.3: UNKNOWN, 2.0.0: UNKNOWN, 2.1: UNKNOWN

testcode.rb Magnifier - テストに使用したコード (3.61 KB) Kiyoteru Inoue, 03/14/2014 05:36 PM

log.txt Magnifier - Segmentation fault コアダンプのログ (11.5 KB) Kiyoteru Inoue, 03/14/2014 05:37 PM

History

#1 Updated by Kiyoteru Inoue about 1 year ago

Fiddle::Impoter で、 Segmentation fault が発生します。

Ruby 1.8.7-p375
Ruby 1.9.3-p545
Ruby 2.1.1-p76

いずれのバージョンでも、同様のコアダンプを発生させています。
Ruby 2.1.1-p76 で実行時のコアダンプを添付します。

実行環境は
Ubuntu 13.10 x86_64 です。CPU の Byte Order は Little Endian です。

実行したテストコードと、Segmentation fault コアダンプのログを貼っておきます。
いずれのRubyバージョンでも発生するので、ライブラリ側の問題ではないと思うのですが。

使用したライブラリは AquesTalk2(linux評価版)です。
開発版(有償)でも、同様のコアダンプが発生しています。

http://www.a-quest.com/download/index.html

よろしくお願いします。
タイトルは入力ミスしてしまいました。訂正方法がわからないのでこのままです。すみません。

#2 Updated by Hiroshi SHIBATA about 1 year ago

  • Subject changed from Fiddle::Importer で Segmentation fault ga to Fiddle::Importer で Segmentation fault が発生する
  • ruby -v set to 2.1.0
  • Tracker changed from Backport to Bug
  • Project changed from Backport21 to Ruby trunk

#3 Updated by Hiroshi SHIBATA about 1 year ago

  • Target version set to current: 2.2.0
  • Backport set to 1.9.3: UNKNOWN, 2.0.0: UNKNOWN, 2.1: UNKNOWN

#4 Updated by Nobuyoshi Nakada about 1 year ago

  • Status changed from Open to Feedback

Integerからポインタへはそのまま渡されます。
Array#packでStringにしないと、参照渡しにはできません。

      result = @@synthe.call(input, ispeed, size = 0, phont) # ←このコードが実行された時点でコアダンプ

      size = [0].pack('i!')
      result = @@synthe.call(input, ispeed, size, phont)
      size, = size.unpack('i!')

のようにしてみてください。

#5 Updated by Kiyoteru Inoue about 1 year ago

Nobuyoshi Nakada wrote:

Integerからポインタへはそのまま渡されます。
Array#packでStringにしないと、参照渡しにはできません。

      result = @@synthe.call(input, ispeed, size = 0, phont) # ←このコードが実行された時点でコアダンプ

      size = [0].pack('i!')
      result = @@synthe.call(input, ispeed, size, phont)
      size, = size.unpack('i!')

のようにしてみてください。

ご指摘ありがとうございます。
ご指摘の通り、修正した結果。正常に動作しました。
お騒がせをしてしまい、すみませんでした。
ご指摘ありがとうございました。

#6 Updated by Nobuyoshi Nakada about 1 year ago

  • Status changed from Feedback to Closed

#7 Updated by Usaku NAKAMURA 9 months ago

  • Status changed from Closed to Rejected

Also available in: Atom PDF