From f30e4e7d846b33b7adf98eac7695c47234f48d4a Mon Sep 17 00:00:00 2001 From: matz Date: Mon, 6 Mar 2000 04:15:42 +0000 Subject: 2000-03-06 git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@632 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ext/socket/socket.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'ext/socket') 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, "") == 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)); } -- cgit