K.Maebashi's BBS 管理者削除

以下の投稿を削除します。

[355] crowbar MEMモジュール
返信
投稿者:tos
2007/02/20 02:13:25

皆さんこんにちは、tosです。 crowbarのMEMモジュールに関して質問があります。 memory.cの void set_header(Header *header, int size, char *filename, int line) { . . . memset(header->s.mark, MARK, (char*)&header[1] - (char*)header->s.mark); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ } でmemsetのサイズとしてMARK_SIZEでは無く、上記のようなサイズを設定しているのは、 パディングを考慮してのことなのかなと思いますが、 void check_mark_sub(unsigned char *mark) { int i; for (i = 0; i < MARK_SIZE; i++) { if (mark[i] != MARK) { fprintf(stderr, "bad mark\n"); abort(); } } } でチェックしているのは、MARK_SIZEのようです。 これだと、(char*)&header[1] - (char*)header->s.mark)がMARK_SIZEでは無かった場合、 チェック漏れが起きてしまいそうな気がするのですが、あっていますでしょうか?(ヨワヨワです)

代替メッセージ

物理削除     パスワード: