K.Maebashi's BBS 投稿フォーム
ハンドル名
件名
Link
>皆さんこんにちは、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では無かった場合、 >チェック漏れが起きてしまいそうな気がするのですが、あっていますでしょうか?(ヨワヨワです)
spamよけのため、ここに「ほげぴよ」と入力してください。
削除パスワード :
クリック!