| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
Unblocking WinDivertRecv() from another thread is in fact the whole
purpose of WinDivertShutdown(), but &mut self made that impossible on
a shared (Arc) handle. It only reads self.handle and doesn't
invalidate it, so &self is sound.
|
| |
|
|
|
| |
This should be null terminated or OpenServiceA() have no chance to
know where str is stopped.
|
| |
|
|
|
|
|
|
|
|
|
| |
MaybeUninit::uninit() is not bound to any variable, so the temporary
is dropped at the end of the statement, leaving `status` as a dangling
pointer into the freed stack slot. Passing it to ControlService() as
an out-pointer then makes the kernel write through a dangling pointer,
which is undefined behavior.
Bind the MaybeUninit<SERVICE_STATUS> to a local so it outlives the
pointer.
|
|
|
This is pulled from cargo cache:
cp -r ~/.cargo/registry/src/index.crates.io-*/windivert-0.6.0 \
crates/windivert
|