これでどう?

--- src/rateup.c.orig   Thu Jan 12 19:29:00 2012
+++ src/rateup.c        Thu Apr 12 10:49:05 2012
@@ -1132,7 +1132,7 @@
   gdImageDestroy (brush_outp);
   free (lhist);
   free (graph_label);
-  if (kMG)
+  if (kMG && short_si[0] != kMG)
     free(short_si);

(2012/05/09 22:32), Koh-ichi Oniuda (鬼生田浩一) wrote:
> 鬼生田です。
> 
>  FreeBSD  9.0-STABLE i386サーバ上で、以下の順にportsから
> installしたMRTGのrateupがcoreを吐きます。
> png-1.4.11    (ports)
> mrtg-2.17.4,1 (ports)
> 
>  googleで検索してみるとlibpngのバージョンアップトラブルなど
> ヒットしましたが、今回のインストールでは、新規サーバ構築って
> こともあり、libpng ->  MRTGの順でインストールしています。
> 
>  configファイルは、FreeBSD 6.4-stable + mrtg-2.15.2で使用して
> いたものと、ほとんど同じです。coreを吐く箇所は、real + swapメモリ
> の以下のパラメータ指定をした場合で、コメントアウトすると問題あり
> ませんし、他のtrafficやloadなども問題ありません。
> 
> kilo[memory]: 1024
> kMG[memory]: k,M,G
> 
> またmemory-day.pngは問題なく作成され(画像を確認)memory-week.png作成
> 時にcoreを吐き、memory-week.png.tmp_<PID>ファイルが残ります。core
> ファイルには、Potential overflow in png_zalloc()のエラーが記録され
> ており、libpngの問題かとも考えましたが、特定にはいたりませんでした。
> 
>  問題の切り分けのため、うまく動作しているバージョン 2.15.2 を
> make NO_CHECKSUM=yes でportsでmakeし、rateup だけを入れ替えた所、同じ
> mrtg.cnf ファイルでもcoreを吐かなくなりました。
> 
>    MRTG(rateup)のバグの可能性が高いですが、情報提供を期待しての、
> workaroundの報告です。
> 
> ---
> Oniuda

メールによる返信