--- nono/host/netdriver_bpf.cpp 2026/04/29 17:04:28 1.1 +++ nono/host/netdriver_bpf.cpp 2026/04/29 17:04:30 1.1.1.2 @@ -34,10 +34,6 @@ NetDriverBPF::NetDriverBPF(EthernetDevic NetDriverBPF::~NetDriverBPF() { Close(); - - if (bpfbuf) { - delete[] bpfbuf; - } } // 初期化 & オープン @@ -142,11 +138,8 @@ NetDriverBPF::Init() // 受信用バッファを確保 try { - bpfbuf = new char [bpfbuflen]; + bpfbuf.reset(new char [bpfbuflen]); } catch (...) { - bpfbuf = NULL; - } - if (bpfbuf == NULL) { warnx("NetDriverBPF.Open: %s(%s): memory allocation failed", devpath.c_str(), ifname.c_str()); goto abort; @@ -271,7 +264,7 @@ NetDriverBPF::ThreadRun() // 自動的にデバイスに着信があったことになるはず assert(r > 0); - n = read(fd, bpfbuf, bpfbuflen); + n = read(fd, bpfbuf.get(), bpfbuflen); if (n == -1) { if (errno == EINTR) { continue; @@ -282,10 +275,10 @@ NetDriverBPF::ThreadRun() if (n == 0) { // EOF return; } - bpfptr = bpfbuf; + bpfptr = bpfbuf.get(); bpfcaplen = n; - while (bpfptr < bpfbuf + bpfcaplen) { + while (bpfptr < bpfbuf.get() + bpfcaplen) { uint8 buf[1600]; // BPF ヘッダを除いた部分