summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--ext/socket/socket.c24
-rw-r--r--version.h4
3 files changed, 20 insertions, 13 deletions
diff --git a/ChangeLog b/ChangeLog
index 30eea460a9..263337ca8a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Sun Jun 25 00:55:03 2000 Katsuyuki Komatsu <komatsu@sarion.co.jp>
+
+ * ext/socket/socket.c (sock_s_getnameinfo): `res' would not
+ be assigned if TYPE(sa) == T_STRING.
+
Sat Jun 24 19:02:34 2000 Yukihiro Matsumoto <matz@netlab.co.jp>
* stable version 1.4.5 released.
diff --git a/ext/socket/socket.c b/ext/socket/socket.c
index d9bc91f688..8af849e7d8 100644
--- a/ext/socket/socket.c
+++ b/ext/socket/socket.c
@@ -1958,19 +1958,21 @@ sock_s_getnameinfo(argc, argv)
error = getnameinfo(sap, SA_LEN(sap), hbuf, sizeof(hbuf),
pbuf, sizeof(pbuf), fl);
if (error) goto error_exit;
- for (r = res->ai_next; r; r = r->ai_next) {
- char hbuf2[1024], pbuf2[1024];
-
- sap = r->ai_addr;
- error = getnameinfo(sap, SA_LEN(sap), hbuf2, sizeof(hbuf2),
- pbuf2, sizeof(pbuf2), fl);
- if (error) goto error_exit;
- if (strcmp(hbuf, hbuf2) != 0|| strcmp(pbuf, pbuf2) != 0) {
- freeaddrinfo(res);
- rb_raise(rb_eSocket, "sockaddr resolved to multiple nodename");
+ if (res) {
+ for (r = res->ai_next; r; r = r->ai_next) {
+ char hbuf2[1024], pbuf2[1024];
+
+ sap = r->ai_addr;
+ error = getnameinfo(sap, SA_LEN(sap), hbuf2, sizeof(hbuf2),
+ pbuf2, sizeof(pbuf2), fl);
+ if (error) goto error_exit;
+ if (strcmp(hbuf, hbuf2) != 0|| strcmp(pbuf, pbuf2) != 0) {
+ freeaddrinfo(res);
+ rb_raise(rb_eSocket, "sockaddr resolved to multiple nodename");
+ }
}
+ freeaddrinfo(res);
}
- freeaddrinfo(res);
return rb_assoc_new(rb_tainted_str_new2(hbuf), rb_tainted_str_new2(pbuf));
error_exit:
diff --git a/version.h b/version.h
index 106e7249b0..1b3a6e3099 100644
--- a/version.h
+++ b/version.h
@@ -1,4 +1,4 @@
#define RUBY_VERSION "1.4.5"
-#define RUBY_RELEASE_DATE "2000-06-24"
+#define RUBY_RELEASE_DATE "2000-06-26"
#define RUBY_VERSION_CODE 145
-#define RUBY_RELEASE_CODE 20000624
+#define RUBY_RELEASE_CODE 20000626