[#30549] [ANN] Ruby 1.8.6 has been released — "Akinori MUSHA" <knu@...>

 Ruby 1.8.6 をリリースしました。

14 messages 2007/03/12

[#30553] help: lib/shell for ruby 1.9 — keiju@... (Keiju ISHITSUKA)

けいじゅ@いしつかです.

13 messages 2007/03/13
[#30585] Re: help: lib/shell for ruby 1.9 — Yukihiro Matsumoto <matz@...> 2007/03/15

まつもと ゆきひろです

[#30587] Re: help: lib/shell for ruby 1.9 — keiju@... (石塚圭樹) 2007/03/15

けいじゅ@いしつかです.

[#30588] Re: help: lib/shell for ruby 1.9 — Yukihiro Matsumoto <matz@...> 2007/03/15

まつもと ゆきひろです

[ruby-dev:30531] DL::PtrData#to_a dumps core

From: sheepman <sheepman@...>
Date: 2007-03-11 15:14:20 UTC
List: ruby-dev #30531
こんばんは、sheepman です。

DL::PtrData が以下のようにすると core を吐きます。
PtrData クラスはポインターのラッパーですから、扱い次第では
core を吐いてしまうのは仕方がないと思うのですが、以下の場合に core を
吐いてしまうのは、バグなんじゃないかと思います。

仕様なんでしょうか?

とりあえず、パッチを添付します。

$ cat t2.rb
require "dl"
sp = ['a', 'b', 'c'].to_ptr
sp.to_a('S')

$ ruby-1.8 -v t2.rb
ruby 1.8.6 (2007-03-05 patchlevel 5000) [i686-linux]
t2.rb:3: [BUG] Segmentation fault
ruby 1.8.6 (2007-03-05) [i686-linux]

zsh: abort      ruby-1.8 -v t2.rb

$ svn diff ext/dl/ptr.c
Index: ext/dl/ptr.c
===================================================================
--- ext/dl/ptr.c        (revision 12023)
+++ ext/dl/ptr.c        (working copy)
@@ -344,7 +344,7 @@
       n = data->size / sizeof(void*);
       break;
     case 'S': case 's':
-      for (n=0; ((void**)(data->ptr))[n]; n++) {};
+      n = data->size / sizeof(char*);
       break;
     default:
        n = 0;

-- 
sheepman / TAMURA Takashi
sheepman@sheepman.sakura.ne.jp

In This Thread

Prev Next