[#10661] bmingw package — WATANABE Hirofumi <eban@...>

わたなべです.

49 messages 2000/08/21
[#10664] Re: bmingw package — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/08/21

なかだです。

[#10665] Re: bmingw package — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/08/21

なかだです。

[#10667] Re: bmingw package — WATANABE Hirofumi <eban@...> 2000/08/21

わたなべです.

[#10668] Re: bmingw package — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/08/22

なかだです。

[#10670] Re: bmingw package — WATANABE Hirofumi <eban@...> 2000/08/22

わたなべです.

[#10671] Re: bmingw package — nobu.nakada@... 2000/08/22

なかだです。

[#10673] Re: bmingw package — WATANABE Hirofumi <eban@...> 2000/08/23

わたなべです.

[#10675] Re: bmingw package — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/08/23

なかだです。

[#10693] Re: bmingw package — WATANABE Hirofumi <eban@...> 2000/08/28

わたなべです.

[#10707] Re: bmingw package — nobu.nakada@... 2000/08/28

なかだです。

[#10713] Re: bmingw package — WATANABE Hirofumi <eban@...> 2000/08/29

わたなべです.

[#10717] Re: bmingw package — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/08/29

なかだです。

[#10723] Re: bmingw package — WATANABE Hirofumi <eban@...> 2000/08/30

わたなべです.

[#10797] Re: bmingw package — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/09/01

なかだです。

[#10821] Re: bmingw package — WATANABE Hirofumi <eban@...> 2000/09/04

わたなべです.

[#10824] Re: bmingw package — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/09/04

なかだです。

[#10825] Re: bmingw package — WATANABE Hirofumi <eban@...> 2000/09/04

わたなべです.

[#10827] Re: bmingw package — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/09/04

なかだです。

[#10837] Re: bmingw package — WATANABE Hirofumi <eban@...> 2000/09/05

わたなべです.

[#10677] Class Variable — Shin-ichiro Hara <sinara@...>

原です。

16 messages 2000/08/24
[#10681] Re: Class Variable — matz@... (Yukihiro Matsumoto) 2000/08/25

まつもと ゆきひろです

[#10688] ruby-1.6.0-20000824.i586-mswin32 bug — Kazuhiro NISHIYAMA <zn@...>

http://www.geocities.co.jp/SiliconValley-Bay/4076/

34 messages 2000/08/27
[#10692] Re: ruby-1.6.0-20000824.i586-mswin32 bug — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/08/28

なかだです。

[#10705] Re: ruby-1.6.0-20000824.i586-mswin32 bug — Kazuhiro NISHIYAMA <zn@...> 2000/08/28

"Nobuyoshi.Nakada" <nobu.nakada@nifty.ne.jp> wrote:

[#10711] Re: ruby-1.6.0-20000824.i586-mswin32 bug — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/08/29

なかだです。

[#10720] Re: ruby-1.6.0-20000824.i586-mswin32 bug — Katsuyuki Komatsu <komatsu@...> 2000/08/30

小松です.

[#10725] Re: ruby-1.6.0-20000824.i586-mswin32 bug — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/08/30

なかだです。

[#10805] ruby-1.6.0-20000901.i586-mswin32.lzh — Kazuhiro NISHIYAMA <zn@...> 2000/09/02

20000901のでもirbでCtrl+Cを押したら落ちました。

[#10807] Re: ruby-1.6.0-20000901.i586-mswin32.lzh — matz@... (Yukihiro Matsumoto) 2000/09/02

まつもと ゆきひろです

[#10811] Re: Ctrl+C on win32 console <- Re: ruby-1.6.0-20000901.i586-mswin32.lzh — " たけ (tk)" <ggb03124@...> 2000/09/03

たけ(tk)です。

[#10813] Re: Ctrl+C on win32 console <- Re: ruby-1.6.0-20000901.i586-mswin32.lzh — nobu.nakada@... 2000/09/03

なかだです。

[#10729] Fwd: patch of the ruby-1.4.6 for NT4.0&VC4.0 on DEC Alpha. — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

18 messages 2000/08/30
[#10730] Re: Fwd: patch of the ruby-1.4.6 for NT4.0&VC4.0 on DEC Alpha. — WATANABE Hirofumi <eban@...> 2000/08/30

わたなべです.

[#10762] ruby 1.6.0 preview — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

42 messages 2000/08/31

[ruby-dev:10724] Re: [PATCH] Win32API.c

From: "Nobuyoshi.Nakada" <nobu.nakada@...>
Date: 2000-08-30 04:06:30 UTC
List: ruby-dev #10724
なかだです。

At Wed, 30 Aug 2000 11:42:47 +0900
WATANABE Hirofumi <eban@os.rim.or.jp> wrote:
> :  この間 Win32API を使ったら、うっかり3番目に nil を渡してしまって 
> :[BUG] とかいわれてしまったので、パッチです。
> 
> そのまま commit しました.

  どうも。

> ところで %w(L L) でもいいけど, そもそも pack/unpack みたいに 
> "LL" で十分じゃんという気がしないでもないというか, それも受
> け付けるようにすればいいのか.

  それも一応考えてはいたんですけど。じゃあついでに TAINT チェックもつけ
て、こんなとこでどうでしょう。


diff -pruPX ./.excludes current/ext/Win32API/Win32API.c devel/ext/Win32API/Win32API.c
--- current/ext/Win32API/Win32API.c	Wed Aug 30 11:35:04 2000
+++ devel/ext/Win32API/Win32API.c	Wed Aug 30 13:04:44 2000
@@ -48,10 +48,13 @@ Win32API_initialize(self, dllname, proc,
     VALUE str;
     VALUE a_import;
     VALUE *ptr;
+    char *s;
     int i;
     int len;
     int ex;
 
+    Check_SafeStr(dllname);
+    Check_SafeStr(proc);
     hdll = LoadLibrary(RSTRING(dllname)->ptr);
     if (!hdll)
 	rb_raise(rb_eRuntimeError, "LoadLibrary: %s\n", RSTRING(dllname)->ptr);
@@ -70,11 +73,13 @@ Win32API_initialize(self, dllname, proc,
     rb_iv_set(self, "__proc__", UINT2NUM((unsigned long)hproc));
 
     a_import = rb_ary_new();
-    if (!NIL_P(import)) {
-	Check_Type(import, T_ARRAY);
+    switch (TYPE(import)) {
+      case T_NIL:
+	break;
+      case T_ARRAY:
 	ptr = RARRAY(import)->ptr;
 	for (i = 0, len = RARRAY(import)->len; i < len; i++) {
-	    Check_Type(ptr[i], T_STRING);
+	    Check_SafeStr(ptr[i]);
 	    switch (*(char *)RSTRING(ptr[i])->ptr) {
 	      case 'N': case 'n': case 'L': case 'l':
 		rb_ary_push(a_import, INT2FIX(_T_NUMBER));
@@ -87,13 +92,31 @@ Win32API_initialize(self, dllname, proc,
 		break;
 	    }
 	}
+        break;
+      default:
+	Check_SafeStr(import);
+	s = RSTRING(import)->ptr;
+	for (i = 0, len = RSTRING(import)->len; i < len; i++) {
+	    switch (*s++) {
+	      case 'N': case 'n': case 'L': case 'l':
+		rb_ary_push(a_import, INT2FIX(_T_NUMBER));
+		break;
+	      case 'P': case 'p':
+		rb_ary_push(a_import, INT2FIX(_T_POINTER));
+		break;
+	      case 'I': case 'i':
+		rb_ary_push(a_import, INT2FIX(_T_INTEGER));
+		break;
+	    }
+	}
+        break;
     }
     rb_iv_set(self, "__import__", a_import);
 
     if (NIL_P(export)) {
 	ex = _T_VOID;
     } else {
-	Check_Type(export, T_STRING);
+	Check_SafeStr(export);
 	switch (*RSTRING(export)->ptr) {
 	  case 'V': case 'v':
 	    ex = _T_VOID;


-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦


In This Thread

Prev Next