[#35688] サブクラスのオブジェクト生成時に、スーパークラスの初期化を行うには ? — Onodera Takafumi <onodera-tak@...>

9 messages 2002/08/01

[#35772] Unsecure world writeable dirの警告 — "井上 浩一" <kyoui32@...>

井上です。

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

まつもと ゆきひろです

[#35789] multipart な CGI を速くしたい — Takashi Kanai <kanai@...4u.or.jp>

Windows上でRubyとMySQLを使ってショッピングサイトのようなものを作って

17 messages 2002/08/28

[ruby-list:35681] Re: STR2CSTR()

From: matz@... (Yukihiro Matsumoto)
Date: 2002-08-01 05:10:54 UTC
List: ruby-list #35681
まつもと ゆきひろです

In message "[ruby-list:35680] Re: STR2CSTR()"
    on 02/08/01, nobu.nakada@nifty.ne.jp <nobu.nakada@nifty.ne.jp> writes:

|At Thu, 1 Aug 2002 13:37:40 +0900,
|Yukihiro Matsumoto wrote:
|> -    if (RSTRING(str)->len < 0) {
|> +    if (len < 0) {
|
|VALUE lenなので負にはなれないのでは。

その通りです。中田さんのパッチを採用するべきか。

--- ext/socket/socket.c	2002/07/26 06:17:44	1.81
+++ ext/socket/socket.c	2002/08/01 05:10:08
@@ -436,2 +436,3 @@
     VALUE len, flg;
+    long slen;
     int fd, flags;
@@ -449,3 +450,4 @@
 
-    str = rb_tainted_str_new(0, NUM2INT(len));
+    slen = NUM2INT(len);
+    str = rb_tainted_str_new(0, slen);
 
@@ -454,7 +456,6 @@
     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) {
@@ -465,2 +466,6 @@
 	rb_sys_fail("recvfrom(2)");
+    }
+    if (slen < RSTRING(str)->len) {
+	RSTRING(str)->len = slen;
+	RSTRING(str)->ptr[slen] = '\0';
     }

In This Thread