Coverity Scan で Ruby が rung 2 に上がった

coverity とは、C とかのソースコードを静的解析してバグ (っぽい箇所) を教えてくれるツールである Prevent を作ってる会社です。Coverity Scan というサービスをやっていて、オープンソースプロジェクトに対して Prevent を適用した結果を無償で提供してくれています。詳細は過去のぼくの記事を参照のこと。


Coverity Scan は今のところ以下の 3 つのレベルからなっています。

  • rung 0: プロジェクトを登録しただけ。開発者がサインインすれば rung 1 に上がる。
  • rung 1: 開発者は解析結果を参照できる。古い Prevent を使うので解析精度はあまりよくない。報告されたバグを全部直したら rung 2 に上がる。
  • rung 2: 最新の Prevent を使う。解析精度がかなり改善されている (らしい) 。今のところここまで。

で、今年の 1 月に「Coverity、脆弱性への対応が迅速な11のOSSプロジェクトを発表 - ZDNet Japan」というニュースがありました。Coverity Scan がリリースされて、機敏に対応して rung 2 に上がった偉いプロジェクトが賞賛されています。具体的には PerlPHPPython など。Ruby にとってはなかなか屈辱的な結果でした。

ですが、こないだやっと Ruby も rung 2 に上がりました *1 。Coverity Scan の結果を見ているのはたぶんぼくしかいないので、ひとえにぼくがちょっとずつ修正・対応していったおかげです。なんかください。

rung 2 にあがって解析精度があがったかどうかはよくわからないのですが、とりあえず新しくわかったバグを直しておきました。

Class#remove_class_variable 以外は軽微なバグでした。他にもいくつかありますが、まだよく見てない。


しかし coverity はすごいなあ。商用のソフトはみんな Prevent で検証すべきだと思う。

*1:Coverity Scan の rung 2 リストを見ても載ってないですが。このリストの更新は止まっているようです。