aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-02-13 15:31:18 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-02-13 15:31:18 +0000
commit76a27adfda7bd2c4c91b8d187f6921c0a87f096f (patch)
treed58973d3f250df3ac72a18770d995b397fb65213
parent62815a50bced3770a53e46e2746ff47cd7d7fb9a (diff)
downloadruby-76a27adfda7bd2c4c91b8d187f6921c0a87f096f.tar.gz
* ext/socket/socket.c (init_unixsock): path may contain NUL for
abstract unix sockets. [ruby-core:10288] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11712 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--ext/socket/socket.c4
-rw-r--r--version.h6
3 files changed, 10 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index 6a911e8aee..1371874278 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Wed Feb 14 00:30:07 2007 Yukihiro Matsumoto <matz@ruby-lang.org>
+
+ * ext/socket/socket.c (init_unixsock): path may contain NUL for
+ abstract unix sockets. [ruby-core:10288]
+
Tue Feb 13 02:21:12 2007 Sam Roberts <sroberts@uniserve.com>
* io.c (rb_f_syscall): Fix buffer overflow with syscall
diff --git a/ext/socket/socket.c b/ext/socket/socket.c
index a0cf8353a1..dc7ee77db4 100644
--- a/ext/socket/socket.c
+++ b/ext/socket/socket.c
@@ -1602,7 +1602,7 @@ init_unixsock(VALUE sock, VALUE path, int server)
rb_raise(rb_eArgError, "too long unix socket path (max: %dbytes)",
(int)sizeof(sockaddr.sun_path)-1);
}
- strcpy(sockaddr.sun_path, StringValueCStr(path));
+ memcpy(sockaddr.sun_path, RSTRING_PTR(path), RSTRING_LEN(path));
if (server) {
status = bind(fd, (struct sockaddr*)&sockaddr, sizeof(sockaddr));
@@ -1628,8 +1628,8 @@ init_unixsock(VALUE sock, VALUE path, int server)
if (server) listen(fd, 5);
init_sock(sock, fd);
- GetOpenFile(sock, fptr);
if (server) {
+ GetOpenFile(sock, fptr);
fptr->path = strdup(RSTRING_PTR(path));
}
diff --git a/version.h b/version.h
index db3ad3c981..6fcbbfa0a1 100644
--- a/version.h
+++ b/version.h
@@ -1,7 +1,7 @@
#define RUBY_VERSION "1.9.0"
-#define RUBY_RELEASE_DATE "2007-02-13"
+#define RUBY_RELEASE_DATE "2007-02-14"
#define RUBY_VERSION_CODE 190
-#define RUBY_RELEASE_CODE 20070213
+#define RUBY_RELEASE_CODE 20070214
#define RUBY_PATCHLEVEL 0
#define RUBY_VERSION_MAJOR 1
@@ -9,7 +9,7 @@
#define RUBY_VERSION_TEENY 0
#define RUBY_RELEASE_YEAR 2007
#define RUBY_RELEASE_MONTH 2
-#define RUBY_RELEASE_DAY 13
+#define RUBY_RELEASE_DAY 14
RUBY_EXTERN const char ruby_version[];
RUBY_EXTERN const char ruby_release_date[];