WinPcap (npcap) errorBufferSize is now too small
- Dominant language
- Go
- Stars
- 6.8k
- Forks
- 1.2k
- PR merge metrics
- No merged PRs in 30d
Description
It looks like newer versions of npcap may require a larger error buffer size. In some cases (mostly concurrent use of the interface), the syscall returns an error:
> `PacketGetAdapterNames: The data area passed to a system call is too small. (122)`
```
func pcapFindAllDevs() (pcapDevices, error) {
var alldevsp pcapDevices
err := LoadWinPCAP()
if err != nil {
return alldevsp, err
}
buf := make([]byte, errorBufferSize)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
ret, _, _ := syscall.Syscall(pcapFindalldevsPtr, 2, uintptr(unsafe.Pointer(&alldevsp.all)), uintptr(unsafe.Pointer(&buf[0])), 0)
if pcapCint(ret) < 0 {
return pcapDevices{}, errors.New(byteSliceToString(buf))
}
return alldevsp, nil
}
```
This comes from `const errorBufferSize = 0x100` created by generate_defs.exe.
Could this buffer size be increased, or the defs regenerated using the current npcap?
Contributor guide
Assessment
This issue has not been assessed yet.