local class

いまさら Java のブロックローカルなクラスは無名でなくてもいいことを知った。おおよそ 10 年もつかっているのに!

public class Foo {
    public static void main(String[] args) {
        Int[] ints = new Int[] {
            func(1),
            func2(2),
            func3(3)
        };

        for (int i = 0; i < ints.length; i++) {
            System.out.println(
                ints[i].getClass().getName() + " " + ints[i].intValue()
            );
        }
    }

    private static Int func(final int n) {
        class Inner implements Int {
            public int intValue() {
                return n;
            }
        }

        return new Inner();
    }

    private static Int func2(final int n) {
        class Inner implements Int {
            public int intValue() {
                return n;
            }
        }

        return new Inner();
    }

    private static Int func3(final int n) {
        return new Int() {
            public int intValue() {
                return n;
            }
        };
    }
}

interface Int {
    int intValue();
}

local exploit

検証用のコードをコンパイルして実行したらあっさり root になれた。x86_64 な VServer では失敗したというコメントもあったけど、x86_64 SMP なカーネルでは普通に成功。
ところで、local exploit のコードが公開された場合、やっぱりレンタルサーバ屋さんは忙しくなったりしているんだろうか。

ときどきの雑記帖

きむら(K)さんのところってたまにリンクとかおかしいですよね、とか思っているのは私だけ?わざわざ書くのもあれだと思っていたけど、思いつくことを書いてみる。

  • たまに違うファイルにリンク
    • 2008年2月10日のエントリのリンクが 2008年2月中旬(11日以降) のファイルへのリンクになっていたりする
  • 個別のファイルは更新されているのに最新エントリに反映されていなかったり
  • たまに外部サイトへのリンクが変
    • なぜか URL に &\1 なんてのが含まれていたりする。理由が何となく想像できるあたりがアレ。

あと、引用元サイトへのリンクが無かったりすると悲しかったりするとかなんとか。
まぁ、なんか、お知らせまでに(決っして「直せ」とかそういう話ではないです)。