2014/02/24(月)ソースコードのコピペは危険

2014/02/24 23:26

ソースコードのコピペミスでで深刻な脆弱性が生み出されてしまったそうです。

Apple史上最悪のセキュリティバグか、iOSとOS XのSSL接続に危険すぎる脆弱性が発覚──原因はタイプミス? | アプリオ

こんなことが起こらないようにPythonを使おう! だと1行で終わってしまうので、もう少し真面目に書いてみますw

最初にこの記事を読んだとき、無条件でfailラベルにジャンプするということは、脆弱性というよりは、成功するべきケースでも必ず失敗するんじゃないのかと思ってしまったのですが、ソースを見てみると、failという名前とは裏腹に成功時にもここを通るようですね。いいのか、こんなラベル名で。

さて、すでに昨日のニュースですから、Twitter上でも様々な意見を見かけました。しかし、ちょっとずれている意見が多いんじゃないかなーという印象を受けました。

まず、gotoを使うのがおかしい、という指摘は的外れと言わざるを得ません。忌み嫌われるgotoではありますが、今回の使い方はC言語では許されることの多いケースの一つです(ほかに許されやすいケースは多重ループから一気に抜ける場合)。そりゃ例外機構があれば使いますけど、ないものは仕方がないじゃないですか。

ちなみに私の今のプロジェクトではgotoが禁止されているため、関数の途中で抜ける場合はそのたびに後処理を書かなければいけません。

if (処理A() != 正常コード) {
    後処理;
    return;
}

if (処理B() != 正常コード) {
    後処理;
    return;
}

ものによっては後処理が全体の半分を占めるという笑えない関数も存在します。もうやだ……。

閑話休題

また、中括弧をつけないことを許容するコーディングルールが悪い、という意見もありました。確かに、if文、for文などで、たとえその内部の処理が1つの文であっても中括弧をつける、というルールを採用しているプロジェクトも多いと思います。そして、そのルールを採用していれば、今回の事故は防げたはずです。

今回の事象だけ考えれば、そのようなルールを持ち込むことで解決できるでしょう。しかし、根本的な部分である、きちんとテストをしていないという問題点は解決しません。

今回のケースは、網羅性で言えばC0すら満たしていないわけですし、一番メインの処理である(ように見える)sslRawVerify()を通していません。私たちはまともにテストをしていませんよ、と公言してしまったことにも等しいわけです。また、テスト以前にこれは静的解析ツールで発見できるレベルのミスですし、そもそもコンパイラが警告を吐いているレベルの間違いです。

これ、ほかのところは大丈夫なんですかね。かなり重要なはずのSSL関連の部分をちゃんとテストしていないのですから、それ以外のところはもっと酷いかもしれませんよ。

2014/02/23(日)便乗値上げ

2014/02/23 20:14

パ・リーグファンが大変お世話になっているパ・リーグTVですが、4月から料金が改定されるようです。

消費税率変更に伴う価格変更のお知らせ | プロ野球速報・ライブ中継 パ・リーグTV

消費税のアップ分以上に上がっているんですが……。ガタガタ騒ぐほどの便乗値上げ額ではないのですが、これを「消費税率変更に伴う」と言われてしまうとモヤッとするものがあります。こういうところであまり不誠実なことをしないでもらいたいと思います。コスト面で消費税以外にも値上げの必要があるのならその旨を堂々と書けばよろしい。

とはいえ、代替のサービスがあるわけでもありませんし、先程も書いたように大騒ぎするほどの便乗値上げ幅でもないので、ことしもお世話になるつもりです。サービス内容自体には特に不満はありませんしね。若菜の解説をOFFにする機能とか、結城哲郎の実況をOFFにする機能とかがあればなお嬉しいですが、さすがにそんなことは実現不可能でしょうしw

2014/02/22(土)オープン戦スタート

2014/02/22 23:00

2月22日は猫の日ということで、「ねこ」の話題を。

今日はライオンズのオープン戦開幕戦でした。注目のオーダーは以下のようなもの。

5 脇谷
9 熊代
4 浅村
3 森本
D 坂田
7 木村
8 秋山
2 炭谷
6 金子侑

森本を4番に入れていることからわかるように、このメンバーの中で最適なオーダーを組むのではなく、ベストオーダーから欠けた選手の代わりをそのままの打順に入れている感じですね。実戦では1番レフト栗山、4番ファースト中村、6番サードランサムに代わるのかな。

投げるほうは先発の武隈が3回3失点、2番手の松下が2回4失点と炎上。4番手の藤原はわずか4球で危険球退場。5番手中崎は1回を無失点でしたが1安打2四球と不安な内容でしたし、6番手宮田も1回無失点ながら盗塁失敗に助けられた感があります。3番手のルーキー豊田だけが1回を1安打無失点というまずまずの内容でしたが、それ以外はちょっと心配になってくる内容でした。

今年も苦労しそうですねぇ……。

2014/02/21(金)検定厨

2014/02/21 23:33

今日は早めに上がれたのでガッツリと。トナメは 0-1-0-0#8-0 と非常にやさぐれたくなる感じだったので、そのあとは入れ替えが近づいている検定に逃げました。

パソモバとことわざはSSSを取っていたので、そのほかを中心に。海外野球は3クレ、東京・関東は6クレでSSSまで持っていきました。

レトロゲームは6クレ回しましたがS止まり。冷静に考えたら私は別にゲームっ子ではなかったんですよねぇw まあ、レトロゲームは入れ替え後もアーカイブに残るようなので、焦らず気長に頑張ります。

え? ROCK検定? 何それ食えんの?

2014/02/20(木)紅白戦

2014/02/20 23:31

口を開けて待っていても情報が落ちてこないので、自分から公式サイトを見にいくしかないのです。

今キャンプ初!紅白戦を実施!! 2/20南郷キャンプ第5クール1日目 | 埼玉西武ライオンズ オフィシャルサイト

Oh...。西口さんが1回2失点という残念な結果に。まあ、この時期に故障で離脱せずにA班で投げているということを考えれば、例年よりはずいぶんと順調ではあるのですがw

欠場した中村は脇腹に違和感があって大事を取ったとのことです。長引かなければいいですけどねぇ。

しかし、ヒゲのないウィリアムスはちょっと新鮮ですねw