Article freyasx/69 of [1-99] on the server localhost:7119
  upper oldest olders older1 this newer1 newers latest
search
[Top/Up] [oldest] - [Older+chunk] - [Newer+chunk] - [newest + Check]

Newsgroups: mail-lists.freyasx

[FreyaSX] Re: fsearch.cgi 実行時 Segmentation fault
20 Oct 2005 13:49:06 GMT 辻 智之 <pgqaaappw-mxhgu43iih3w.ml@delegate.org>

辻です

07 Oct 2005 09:36:56 GMT ysato@delegate (Yutaka Sato)
The DeleGate Project

遅レスですいません。
やっと仕事が一段落して、最近ようやく普通の生活に復帰しました。。。

> On 09/28/05(09:38) you ysato@delegate (Yutaka Sato) wrote
> in <_A58@freyasx.ML_>
>  |そういえば、Gcc3 からは strstream が無くなった?ので、stringstream に
>  |置き換えたのですが、Gcc2.9 はその移行期で、実装が不安定だったようです。
>  |実際、オリジナルFreya (Gcc2) から FreyaSX (Gcc3) への移植は MacOSX 上の
>  |Gcc3 で行ったのですが、移植後の版を RedHat7.1 の Gcc2.96-81 で試したら
>  |動作せず、適当に回避した記憶があります。

>  |String.cc の 94 行目にある、
>  |  if(sout.tellp() <= 0){ // stringstream seems be implemented incompletely
>  |というのがそれです。stringstream の tellp() がちゃんと実装されているか
>  |どうかで、stringstream の実装状態を占うものですが、その後の2.96の過程で、
>  |tellp() が治ったけれどget() がまだおかしい、と言う段階があるのかも知れ
>  |ません。ですので、この行を、
>  |  if(1){
>  |のように置き換えれば、問題を回避できるかも知れません。
> 
> これで効果があったかどうかわからないのですが、ともかく、0.99.12 では

NGだったサーバ2台で確認いたしました。

String.cc の 94 行目を
if(1){
に修正後コンパイルし cgi-bin/fsearch.cgi 実行で、
思い通り html文が表示されました。

Segmentation fault 出てきませんね。

fhttpd -P8880 実施後
http://hogehoge:8880/cgi-bin/fsearch/fsearch.cgi?
も動作OKでした。

迅速で、親切なご対応に感謝しております。
ほんとうにありがとうございました。

> 
> [String.cc]
> #ifdef __GNUC__ && __GNUC__ < 3
> #define NOSTRINGSTREAM 1
> #else
> ...
> 
> のように Gcc3 以前を判定して、stringstream の get() を使わないように
> しました。


  admin search upper oldest olders older1 this newer1 newers latest
[Top/Up] [oldest] - [Older+chunk] - [Newer+chunk] - [newest + Check]
@_@V