summaryrefslogtreecommitdiffstats
path: root/ext/socket
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2000-03-06 04:15:42 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2000-03-06 04:15:42 +0000
commitf30e4e7d846b33b7adf98eac7695c47234f48d4a (patch)
tree095315717e3050b4acb09d91e848dc2e3d0b2b5f /ext/socket
parent4a63aea75bf3c7eb1a26ab06d8a56789fa668a79 (diff)
downloadruby-f30e4e7d846b33b7adf98eac7695c47234f48d4a.tar.gz
ruby-f30e4e7d846b33b7adf98eac7695c47234f48d4a.tar.xz
ruby-f30e4e7d846b33b7adf98eac7695c47234f48d4a.zip
2000-03-06
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@632 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/socket')
-rw-r--r--ext/socket/socket.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/ext/socket/socket.c b/ext/socket/socket.c
index 7838b151a..ac79d8913 100644
--- a/ext/socket/socket.c
+++ b/ext/socket/socket.c
@@ -530,6 +530,9 @@ ip_addrsetup(host, port)
else if (name[0] == '<' && strcmp(name, "<broadcast>") == 0) {
mkinetaddr(INADDR_BROADCAST, hbuf, sizeof(hbuf));
}
+ else if (strlen(name) > sizeof(hbuf)-1) {
+ rb_raise(rb_eArgError, "hostname too long (%d)", strlen(name));
+ }
else {
strcpy(hbuf, name);
}
@@ -551,6 +554,9 @@ ip_addrsetup(host, port)
hints.ai_socktype = SOCK_DGRAM;
error = getaddrinfo(hostp, portp, &hints, &res);
if (error) {
+ if (hostp && hostp[strlen(hostp)-1] == '\n') {
+ rb_raise(rb_eSocket, "newline at the end of hostname");
+ }
rb_raise(rb_eSocket, "%s", gai_strerror(error));
}