[#14922] alias $gvar — Koji Arai <JCA02266@...>

新井です。

19 messages 2001/10/14

[#15006] Re: eval.c (rb_stack_check): prohibit recursive raising error — WATANABE Hirofumi <eban@...>

わたなべです。

13 messages 2001/10/26
[#15008] Re: eval.c (rb_stack_check): prohibit recursive raising error — Shugo Maeda <shugo@...> 2001/10/26

前田です。

[ruby-dev:14999] Re: TCPSocket.gethostbyname で Segmentation fault

From: matz@... (Yukihiro Matsumoto)
Date: 2001-10-25 07:44:06 UTC
List: ruby-dev #14999
まつもと ゆきひろです

In message "[ruby-dev:14998] TCPSocket.gethostbyname で Segmentation fault"
    on 01/10/25, tomohiko machida <machida@mica.semicon.sony.co.jp> writes:

|主にcygwin版のRubyを使っているのですが、Segmentation fault 
|が起きるのでちょっと調べてみたところ、socket.c の
|tcp_s_gethostbyname の #ifdef h_addr からの処理で落ちている
|ことがわかりました。
|
|どうやら pch がさしている h->h_addr_list の内容をループ中で
|呼んでいる gethostbyaddr が破壊しているようです。
|
|Manpage of GETHOSTBYNAME には
|http://www.linux.or.jp/JM/html/LDP_man-pages/man3/gethostbyaddr.3.html
|------
|gethostbyname() および gethostbyaddr() 関数は静的データへの
|ポインタを返す。このポインタは、その後の呼び出しで上書きされ
|るかもしれない。 hostent 構造体はポインタを含んでいるので、
|構造体のコピーだけでは不十分である。 - より深いコピーが必要
|である。 
|------
|とありますが、どうなんでしょう?

知りませんでした。「より深いコピーが必要」なんですね。

|ひとまず以下のような修正でうまく動いているようです。(たぶん)

ですが、この修正をどのように適用したものだか戸惑っています。
もしよければ、diff -uの形式で差分をいただけませんでしょうか?

In This Thread