[#45341] 非同期割り込みに対する対処案(日本語版) — SASADA Koichi <ko1@...>

 ささだです.

28 messages 2012/03/11
[#45816] Re: 非同期割り込みに対する対処案(日本語版) — SASADA Koichi <ko1@...> 2012/06/25

 ささだです.

[#45817] Re: 非同期割り込みに対する対処案(日本語版) — Tanaka Akira <akr@...> 2012/06/25

2012年6月25日 18:26 SASADA Koichi <ko1@atdot.net>:

[#45819] Re: 非同期割り込みに対する対処案(日本語版) — SASADA Koichi <ko1@...> 2012/06/25

 ささだです.

[#45820] Re: 非同期割り込みに対する対処案(日本語版) — Tanaka Akira <akr@...> 2012/06/25

2012年6月25日 19:39 SASADA Koichi <ko1@atdot.net>:

[#45827] Re: 非同期割り込みに対する対処案(日本語版) — SASADA Koichi <ko1@...> 2012/06/25

(2012/06/25 20:32), Tanaka Akira wrote:

[#45841] Re: 非同期割り込みに対する対処案(日本語版) — Tanaka Akira <akr@...> 2012/06/25

2012年6月26日 3:40 SASADA Koichi <ko1@atdot.net>:

[#45372] Marshal.dumpにおけるインスタンス変数の取り扱いについて — keiju@... (Keiju ISHITSUKA)

けいじゅ@いしつかです.

14 messages 2012/03/16
[#45376] Re: Marshal.dumpにおけるインスタンス変数の取り扱いについて — Yukihiro Matsumoto <matz@...> 2012/03/17

まつもと ゆきひろです

[#45377] Re: Marshal.dumpにおけるインスタンス変数の取り扱いについて — keiju@... (石塚圭樹) 2012/03/17

けいじゅ@いしつかです.

[#45381] Re: Marshal.dumpにおけるインスタンス変数の取り扱いについて — Yukihiro Matsumoto <matz@...> 2012/03/17

まつもと ゆきひろです

[#45399] Re: Marshal.dumpにおけるインスタンス変数の取り扱いについて — keiju@... (石塚圭樹) 2012/03/18

けいじゅ@いしつかです.

[#45412] [ruby-trunk - Feature #6177][Open] array.cのrb_ary_equal()の高速化 — "Glass_saga (Masaki Matsushita)" <glass.saga@...>

13 messages 2012/03/20

[#45471] [ruby-trunk - Bug #6230][Open] [WEBrick] WEBrick::HTTPResponse#body の IO オブジェクトの読み込みに read メソッドを使っているため必要以上にブロックされる — "nobuoka (yu nobuoka)" <nobuoka@...>

7 messages 2012/03/30

[ruby-dev:45367] [ruby-trunk - Bug #6144][Assigned] regexec may allocate extra memory?

From: Yui NARUSE <naruse@...>
Date: 2012-03-15 15:21:11 UTC
List: ruby-dev #45367
Issue #6144 has been updated by Yui NARUSE.

Status changed from Open to Assigned

うーん、何か変えるとしたら、以下のような感じですかねぇ。

diff --git a/regexec.c b/regexec.c
index 2587cd9..9e31c71 100644
--- a/regexec.c
+++ b/regexec.c
@@ -446,16 +446,16 @@ onig_region_copy(OnigRegion* to, OnigRegion* from)

 #define STACK_INIT(alloc_addr, ptr_num, stack_num)  do {\
   if (msa->stack_p) {\
-    alloc_addr = (char* )xalloca(sizeof(char*) * (ptr_num));\
+    alloc_addr = (char* )xalloca(sizeof(OnigStackIndex*) * (ptr_num));\
     stk_alloc  = (OnigStackType* )(msa->stack_p);\
     stk_base   = stk_alloc;\
     stk        = stk_base;\
     stk_end    = stk_base + msa->stack_n;\
   }\
   else {\
-    alloc_addr = (char* )xalloca(sizeof(char*) * (ptr_num)\
+    alloc_addr = (char* )xalloca(sizeof(OnigStackIndex*) * (ptr_num)\
                       + sizeof(OnigStackType) * (stack_num));\
-    stk_alloc  = (OnigStackType* )(alloc_addr + sizeof(char*) * (ptr_num));\
+    stk_alloc  = (OnigStackType* )(alloc_addr + sizeof(OnigStackIndex*) * (ptr_num));\
     stk_base   = stk_alloc;\
     stk        = stk_base;\
     stk_end    = stk_base + (stack_num);\
----------------------------------------
Bug #6144: regexec may allocate extra memory?
https://bugs.ruby-lang.org/issues/6144#change-24608

Author: Yusuke Endoh
Status: Assigned
Priority: Normal
Assignee: Yui NARUSE
Category: 
Target version: 
ruby -v: ruby 2.0.0dev (2012-03-14 trunk 35017) [i686-linux]


naruse さん、k-takata さん
遠藤です。

多分鬼車の問題なんですが、regexec.c に

  alloc_addr = (char* )xalloca(sizeof(char*) * (ptr_num));\

という行があります。(#define STACK_INIT 内)
前後見てませんが、

  alloc_addr = (char* )xalloca(sizeof(char) * (ptr_num));\

または

  alloc_addr = (char** )xalloca(sizeof(char*) * (ptr_num));\

と書きたかったんじゃないでしょうか。
たぶん前者かなーという予感はしますが、確認・修正して頂けます
でしょうか。もし現状が正しかったらすみません。

やはり Coverity Scan さんが見つけてくれてました。

-- 
Yusuke Endoh <mame@tsg.ne.jp>


-- 
http://bugs.ruby-lang.org/

In This Thread