Hatena::ブログ(Diary)

てきとうなメモ

2012-02-04

[] プロセス置換

diff <(exiftool img_1.jpg) <(exiftool img_2.jpg)

リダイレクトの何かの機能かなと思っていてら、Bashだとプロセス置換という機能があって、

command <(list)
command >(list)

と記述すると、名前付きパイプなどを利用してそこにプロセスlistの入力/出力を接続しつつ、コマンドcommandの引数にそのファイル名を渡すということらしい。これは便利そう。

2012-01-31

[][] sudo-1.8のバグ

Sudo 1.8.0 introduced simple debugging support that was primarily intended for use when developing policy or I/O logging plugins. The sudo_debug() function contains a flaw where the program name is used as part of the format string passed to the fprintf() function. The program name can be controlled by the caller, either via a symbolic link or, on some systems, by setting argv[0] when executing sudo. For example:

$ ln -s /usr/bin/sudo ./%s

$ ./%s -D9

Segmentation fault

Using standard format string vulnerability exploitation techniques it is possible to leverage this bug to achieve root privileges.

sudo-1.8.0〜1.8.2におけるバグルート権限とられてしまう。

sudo-1.8.2のコードを読むとeasprintf(独自のsprintf関数)した後にvfprintfしていて、getprogname()が'%s'を返すとvfprintfで%sの数が引数の数に対して多くなるのでセグメンテーションフォルトになるっぽい。

/*
 * Simple debugging/logging.
 */
void
sudo_debug(int level, const char *fmt, ...) 
{
    va_list ap;
    char *fmt2;

    if (level > debug_level)
        return;

    /* Backet fmt with program name and a newline to make it a single write */
    easprintf(&fmt2, "%s: %s\n", getprogname(), fmt);
    va_start(ap, fmt);
    vfprintf(stderr, fmt2, ap); 
    va_end(ap);
    efree(fmt2);
}

2012-01-29

[][][] 犯罪に利用されたコードの公開

いわゆる、フル・ディスクロージャ=完全情報公開。 もちろん実際それは難しかろうし、現実的には第三者のプロを選任して意見を求めるってところだろう。たとえば医療過誤の訴訟では裁判所が第三者の医師を呼んで意見を聞くみたいなこと。コンピュータ犯罪が疑われる場合もそうすべきだ。

裁判のときに提出してもらうとかでもよさそうな気がするけど、現状特にやっていないのかな。捜査時に警察が専門家にチェックしてもらうというのも良いけどリソースが足りるのかどうかよくわからん。

今回の逮捕に関しては現状出ている情報からみると妥当な逮捕のように思える。普通にユーザの意図に反するコードを供用、作成したわけなので。

2012-01-15

[][] 放射線医が語る被ばくと発ガンの真実

放射線医が語る被ばくと発がんの真実 (ベスト新書)

放射線医が語る被ばくと発がんの真実 (ベスト新書)

震災以降twitter等で活躍されていた中川恵一氏の本。最近はあまり見かけていない気がする。twitterやっていた頃から慎重に発言するタイプではなかったイメージがあって、それはこの本でも変わっていない。福島ではがんは増えないと断言してしているし、多くの人が避難しなかった広島避難したベラルーシ平均寿命を比較して避難することの問題を指摘するのはどうかと思う。平均寿命だけ比較しても要因が多すぎるだろう。

また、全体的に放射線の問題が小さいということの根拠となる文献があまり紹介されていないのがあまりよろしくない。ただ、そこをつっこむと世の中の新書はそういうものなのでしょうがないのだけども。

ちょっと面白かったのは一部で有名な早川由紀夫氏のマップを使って飯館村への避難指示が遅かったことを批判していた事。異なる意見の人の成果をこうして取り上げているのはすばらしい。

あまり新しい知見はなかったのだが、過剰避難の問題に関して引用しているロシア政府報告書は知らなかった。たぶんこれだと思う。

ロシア語なんで読めないが、本書では結論部分の日本語訳が引用されている。ロシアの結論としては放射線の影響よりも、ストレス、生活様式の破壊、経済活動の制限、事故に関連した物質的損失の方が大きな損失をもたらしたとしている。

2011-12-28

[] プロジェクトのソースコードの全行数を数える

空行とかコメントはとりあえず無視する

$ find . -name '*.[ch]' | xargs wc -l

だとファイル数が多いとxargsがコマンドを実行する時にARG_MAXを超えてしまってうまくいかないのか。find -execでも同じ

$ find . -name '*.[ch]' | xargs cat | wc -l

とすればよい。