[#35688] サブクラスのオブジェクト生成時に、スーパークラスの初期化を行うには ? — Onodera Takafumi <onodera-tak@...>
9 messages
2002/08/01
[#35689] Re: サブクラスのオブジェクト生成時に、スーパークラスの初期化を行うには ?
— "Shin'ya Adzumi" <adzumi@...>
2002/08/01
あづみです。
[#35690] Ruby/SDL がうまく動きません — Mitsuhiko_Tomomi <mikkun_ota@...>
earthseaと申します。
4 messages
2002/08/01
[#35722] パターンマッチした値を保持する変数は — goto@...
後藤です。
8 messages
2002/08/08
[#35729] SMTP サーバクラス — とみたまさひろ <tommy@...>
とみたです。
5 messages
2002/08/08
[#35743] FortranArray, yet another handler of array — NISHIMATSU Takeshi <t-nissie@...>
西松と申します.
4 messages
2002/08/12
[#35754] [ANN] SWIG 1.3.14 リリース — Shibukawa Yoshiki <yoshiki@...>
渋川@SWIGコアメンバーです。
4 messages
2002/08/13
[#35759] Bignum fast multiplication — IKEGAMI Daisuke <daisu-ik@...>
いけがみです。
9 messages
2002/08/14
[#35772] Unsecure world writeable dirの警告 — "井上 浩一" <kyoui32@...>
=1B$B0f>e$G$9!#=1B(B
31 messages
2002/08/26
[#35774] Re: Unsecure world writeable dir の警告
— matz@... (Yukihiro Matsumoto)
2002/08/26
まつもと ゆきひろです
[#35775] Re: Unsecure world writeabledir の警告
— nobu.nakada@...
2002/08/26
なかだです。
[#35776] Re: Unsecure world writeabledir の警告
— matz@... (Yukihiro Matsumoto)
2002/08/26
まつもと ゆきひろです
[#35778] Re: Unsecure world writeabledir の警告
— nobu.nakada@...
2002/08/26
なかだです。
[#35779] Re: Unsecure world writeabledir の警告
— WATANABE Hirofumi <eban@...>
2002/08/26
わたなべです。
[#35780] Re: Unsecure world writeabledir の警告
— nobu.nakada@...
2002/08/26
なかだです。
[#35784] Re: Unsecure world writeabledir の警告
— "U.Nakamura" <usa@...>
2002/08/26
こんにちは、なかむら(う)です。
[#35854] Re: Unsecure world writeabledir の警告
— "Inoue" <rubyist@...1.117.ne.jp>
2002/09/04
井上です。
[#35865] Re: Unsecure world writeabledir の警告
— Koji Arai <JCA02266@...>
2002/09/05
新井です。
[#35866] Re: Unsecure world writeabledir の警告
— matz@... (Yukihiro Matsumoto)
2002/09/06
まつもと ゆきひろです
[#35867] Re: Unsecure world writeabledir の警告
— "NAKAMURA, Hiroshi" <nakahiro@...>
2002/09/06
なひです。
[#35870] Re: Unsecure world writeabledir の警告
— Koji Arai <JCA02266@...>
2002/09/06
新井です。
[#35789] multipart な CGI を速くしたい — Takashi Kanai <kanai@...4u.or.jp>
Windows上でRubyとMySQLを使ってショッピングサイトのようなものを作って
17 messages
2002/08/28
[#35790] Re: multipart な CGI を速くしたい
— "U.Nakamura" <usa@...>
2002/08/28
こんにちは、なかむら(う)です。
[#35818] Re: multipart な CGI を速くしたい
— とみたまさひろ <tommy@...>
2002/08/29
とみたです。
[ruby-list:35679] Re: STR2CSTR()
From:
nobu.nakada@...
Date:
2002-08-01 04:47:39 UTC
List:
ruby-list #35679
なかだです。
At Thu, 1 Aug 2002 13:07:36 +0900,
OHARA Shigeki wrote:
> > |UDPSocket#recvfrom で得た文字列を STR2CSTR() で取り出そうとしたところ、
> > |得られた文字列が NULL 終端されていないことがありました。
> > |
> > |STR2CSTR() で得られた文字列は、
> > |NULL 終端されていることが保証されていないのでしょうか?
> >
> > 保証しているつもりです。どっかにバグがあったんでしょうか。
UDPSocket#recvfromが、RSTRING(str)->lenを書き換えるだけでNUL終
端してませんね。とりあえずresizeしておいたほうがいいと思います
が、rb_str2cstr()でも保証したほうがいいでしょうか。
Index: ext/socket/socket.c
===================================================================
RCS file: /cvs/ruby/src/ruby/ext/socket/socket.c,v
retrieving revision 1.35.2.15
diff -u -2 -p -r1.35.2.15 socket.c
--- ext/socket/socket.c 11 Jun 2002 06:58:39 -0000 1.35.2.15
+++ ext/socket/socket.c 1 Aug 2002 04:41:46 -0000
@@ -435,4 +435,5 @@ s_recvfrom(sock, argc, argv, from)
socklen_t alen = sizeof buf;
VALUE len, flg;
+ long slen;
int fd, flags;
@@ -448,14 +449,14 @@ s_recvfrom(sock, argc, argv, from)
fd = fileno(fptr->f);
- str = rb_tainted_str_new(0, NUM2INT(len));
+ str = rb_tainted_str_new(0, slen = NUM2INT(len));
retry:
rb_thread_wait_fd(fd);
TRAP_BEG;
- RSTRING(str)->len = recvfrom(fd, RSTRING(str)->ptr, RSTRING(str)->len, flags,
- (struct sockaddr*)buf, &alen);
+ slen = recvfrom(fd, RSTRING(str)->ptr, slen, flags,
+ (struct sockaddr*)buf, &alen);
TRAP_END;
- if (RSTRING(str)->len < 0) {
+ if (slen < 0) {
switch (errno) {
case EINTR:
@@ -465,4 +466,7 @@ s_recvfrom(sock, argc, argv, from)
rb_sys_fail("recvfrom(2)");
}
+ if (slen < RSTRING(str)->len) {
+ rb_str_resize(str, slen);
+ }
rb_obj_taint(str);
switch (from) {
--
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
中田 伸悦