p_flags とか
そういえば昨日は喋った後で kik さんに間違ってるところ無いですか?と聞いて、 write が失敗したら EAX が -1 になっちゃって落ちるんだよ、という話と、 p_flags は下 3bit が 3 か 6 か 7 にしなきゃならんという話を補足してもらいました。後者は苦労するのはわかってたけど、 exit のあとは地味気味なので、説明しなくてもまぁいいかなぁと省略してしまったのでした。スライドだけ見るとそれ書いてないので一応補足をここで。 p_flags はロードするメモリ領域の rwx を指定するわけですが、ヘッダを通ってる最中に EAX 付近をいじってしまうので w が必須で、あと r か x が必要だと思います。で、 p_flags のある位置には "o" があるのですが、これは
irb(main):004:0> "%b"%?o => "1101111"
とのことですから全 bit 立ってますね。