[Namazu-users-ja 703] フィルタ xlhtml

Taiji.Can @ grd.advantest.co.jp Taiji.Can @ grd.advantest.co.jp
2006年 3月 9日 (木) 12:52:37 JST


  菅です。

  Namazu 本体の話ではありません。xlhtml 0.5.1(vd2)を使っています。

  xlhtml なんですが、現在のところ2個所でバグではないか? と、言うものを
  見つけています。

  環境は

Miracle Linux 2.4.21-9.30AXsmp 
Namazu 2.0.15 
xlhtml-0.5.1-vd2
gcc バージョン 3.2.3 20030502 (Asianux 1.0 3.2.3-36)

  です。

  現象としては

  1. excel の解析をしている最中に core.xxxx を吐いて中断する。
  2. excel の解析をしている最中に無限ループらしきものに入り込んで処理が 
     終了しない。

  1 の方は main_line_processor の
  
                case 0xE5:              /* CELL MERGE INSTRUCTIONS */
                        working_buffer[bufidx++] = data;

                        if (bufidx == last)
                        {
                        U16 num, fr, lr, fc, lc, i, j, k;
                        ws_array[sheet_count]->spanned = 1;

  の ws_array[sheet_count]->spannes = 1; で起きていることが判りました。
  アロケーションしている値をsheet_count が越えているのか?と、思って
  見たのですが、 sheet_count はこの時 29 でした。

  2 の方はやはり同じく

  for(k=fc; k<=lc; k++)
    {       /* for each column */

      array[sheet_count]->c_array[(j*ws_array[sheet_count]->max_cols)+k];
                                                                        
   :
   :

  }

  で、 lc の値が 65535 の時があり、U16 宣言の k は65535 の次は 0 と
  なるため、このループが永久ループになります。

  1,2 とも流れが良く判らないため、修正できていません。
  どなたかこの辺りを修正なさった方はいらっしゃいますか?

-- 

					ADVANTEST corp.
					Taiji.Can @ grd.advantest.co.jp



Namazu-users-ja メーリングリストの案内