mod_ruby icon indicating copy to clipboard operation
mod_ruby copied to clipboard

cgi.rb でアップロードファイルと同じサイズのメモリを使用する

Open tmtm opened this issue 15 years ago • 0 comments

mod_ruby で cgi.rb を使用すると、CGI.new 時にアップロードしたファイルと同じサイズのメモリを使用してしまいます。 request.c の read_client_block() で、apr_palloc() でメモリを獲得していますが、これがアップロードファイルを全部読むまで繰り返し呼ばれるため、結果としてアップロードファイルと同じサイズのメモリが獲得されてしまいます。 apr_palloc() で獲得したメモリ buf は rb_str_cat() 後は不要なため、apr_palloc() ではなくて、この関数内で malloc() & free() した方がいいのではないかと思うのですが、いかがでしょうか。

tmtm avatar Jul 06 '10 15:07 tmtm