diff options
| author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-02-13 15:31:18 +0000 |
|---|---|---|
| committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2007-02-13 15:31:18 +0000 |
| commit | 6eb4b9668c67d246a58ccb3d4ace3ac784ec7ddc (patch) | |
| tree | d58973d3f250df3ac72a18770d995b397fb65213 | |
| parent | 1ce6d71836513ed85f575c9ae5af4f7d94fe3f80 (diff) | |
| download | ruby-6eb4b9668c67d246a58ccb3d4ace3ac784ec7ddc.tar.gz ruby-6eb4b9668c67d246a58ccb3d4ace3ac784ec7ddc.tar.xz ruby-6eb4b9668c67d246a58ccb3d4ace3ac784ec7ddc.zip | |
* ext/socket/socket.c (init_unixsock): path may contain NUL for
abstract unix sockets. [ruby-core:10288]
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@11712 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
| -rw-r--r-- | ChangeLog | 5 | ||||
| -rw-r--r-- | ext/socket/socket.c | 4 | ||||
| -rw-r--r-- | version.h | 6 |
3 files changed, 10 insertions, 5 deletions
@@ -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 a0cf8353a..dc7ee77db 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)); } @@ -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[]; |
