カーネルパニックの問題があります。
BUG: unable to handle page fault for address: ffff88812c410000
スタック情報の表示
ip_frag_next-->skb_copy_bits-->memcpy_orig+52
分析の結果、受信したmemcpy呼び出しは620バイトでしたが、競合のために107520バイトがコピーされたことがわかりました。結果はアクセス例外です。
これが起こる原因は何ですか?
RDX:現在のオフセット RBX:memcpyの指定された長さ RAX:memcpyのターゲットポインタ RDI:ターゲットの現在位置 [例外 RIP: memcpy_orig+52] RIP: ffffffff80a98ed4 RSP: ffffc90000067698 RFLAGS: 00010282 RAX: ffff88812c3f5c24 RBX: 000000000000026c RCX: 0000000000001cfc RDX: fffffffffffe5e4c RSI: ffff888002b3014a RDI: ffff88812c40ffe4 RBP: ffff88812c3f5c24 R8: 657fc3fb17a4d6f3 R9: 763c3854b6c4e057 R10:55cc9b5ed64cab61 R11:2afd84bbcdd9c7a3 R12:ffffffff814cbbc0 R13: 000000000000026c R14: 0000000000001cfc R15: 0000000000001f68 クラッシュ > dis -r memcpy_orig+52 0xffffffff80a98ea0: mov %rdi, %rax 0xffffffff80a98ea3 : cmp $0x20,%rdx 0xffffffff80a98ea7:jb 0xffffffff80a98f27 0xffffffffff80a98ea9: cmp %dil,%sil 0xffffffff80a98eac:jl 0xffffffffff80a98ee3 0xffffffff80a98eae : 下位$0x20,%rdx 0xffffffff80a98eb2: サブ $0x20, %rdx 0xffffffff80a98eb6: mov (%rsi), %r 8 0xffffffff80a98eb9: 0x8(%rsi),%r9 移動 0xffffffff80a98ebd : 0x10(%rsi),%r10 移動 0xffffffff80a98ec1: 0x18(%rsi),%r11 移動 0xffffffff80a98ec5 :lea 0x20(%rsi),%rsi 0xffffffff80a98ec9: %r8 移動、(%rdi) 0xffffffff80a98ecc: %r9,0x8(%rdi) 移動 0xffffffff80a98ed0 : %r10,0x10(%rdi) 移動 0xffffffff80a98ed4 : %r11,0x18(%rdi) 移動
コードによると、memcpyは指定された620バイトのデータのみをコピーする必要があります。ただし、107520バイトを超えるデータをコピーし、最終的にアクセス例外が発生しました。