小松です。

In the message of [ruby-dev:6919] ext/socket/getaddrinfo.c tiny fix
    on 1999/5/20 13:06:56 Jun-ichiro itojun Hagino <itojun / itojun.org> wrote:
|	ext/socket/getaddrinfo.cに以下のpatchをおねがいします。

ext/socket/getaddrinfo.cですが、GET_AI()の定義で、
malloc()の失敗時にerrorを代入していないようです。

そういえば、拡張ライブラリでのmalloc()とxmalloc()の
使い分けの基準はなんだろう?
ここのmalloc()がいいのかどうかが気になります。

--- ruby-1.3.3-990518.orig/ext/socket/getaddrinfo.c	Sat May  8 00:34:36 1999
+++ ruby-1.3.3-990518/ext/socket/getaddrinfo.c	Fri May 21 23:01:26 1999
@@ -160,7 +160,10 @@
 	char *p;\
 	if (((ai) = (struct addrinfo *)malloc(sizeof(struct addrinfo) +\
 					      ((afd)->a_socklen)))\
-	    == NULL) goto free;\
+	    == NULL) {\
+		error = EAI_MEMORY;\
+		goto free;\
+	}\
 	memcpy(ai, pai, sizeof(struct addrinfo));\
 	(ai)->ai_addr = (struct sockaddr *)((ai) + 1);\
 	memset((ai)->ai_addr, 0, (afd)->a_socklen);\

--
小松克行 / Katsuyuki Komatsu <komatsu / sarion.co.jp>