<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dpibreak.git/crates/windivert/src, branch v0.6.2</title>
<subtitle>System-wide DPI circumvention with minimal configuration
</subtitle>
<id>http://git.dilluti0n.com/dpibreak.git/atom?h=v0.6.2</id>
<link rel='self' href='http://git.dilluti0n.com/dpibreak.git/atom?h=v0.6.2'/>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/dpibreak.git/'/>
<updated>2026-07-13T18:55:12Z</updated>
<entry>
<title>windivert: relax shutdown() receiver to &amp;self</title>
<updated>2026-07-13T18:55:12Z</updated>
<author>
<name>dilluti0n</name>
<email>hskim@dilluti0n.com</email>
</author>
<published>2026-07-13T14:47:07Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/dpibreak.git/commit/?id=7840fcd88561ce441c25fbb2e9c88933f4199797'/>
<id>urn:sha1:7840fcd88561ce441c25fbb2e9c88933f4199797</id>
<content type='text'>
Unblocking WinDivertRecv() from another thread is in fact the whole
purpose of WinDivertShutdown(), but &amp;mut self made that impossible on
a shared (Arc) handle. It only reads self.handle and doesn't
invalidate it, so &amp;self is sound.
</content>
</entry>
<entry>
<title>windows: windivert: fix rust str passed as ptr to C ffi</title>
<updated>2026-07-13T18:55:12Z</updated>
<author>
<name>dilluti0n</name>
<email>hskim@dilluti0n.com</email>
</author>
<published>2026-07-13T14:33:43Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/dpibreak.git/commit/?id=82c8d8097c6e239a59bd7fa7011366a43ac1c649'/>
<id>urn:sha1:82c8d8097c6e239a59bd7fa7011366a43ac1c649</id>
<content type='text'>
This should be null terminated or OpenServiceA() have no chance to
know where str is stopped.
</content>
</entry>
<entry>
<title>windows: windivert: fix dangling pointer in WinDivert::uninstall()</title>
<updated>2026-07-13T18:54:51Z</updated>
<author>
<name>dilluti0n</name>
<email>hskim@dilluti0n.com</email>
</author>
<published>2026-07-13T14:10:42Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/dpibreak.git/commit/?id=e0541485fa3059f114892014b1f6b6bb5e3decb0'/>
<id>urn:sha1:e0541485fa3059f114892014b1f6b6bb5e3decb0</id>
<content type='text'>
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&lt;SERVICE_STATUS&gt; to a local so it outlives the
pointer.
</content>
</entry>
<entry>
<title>windows: pull windivert-0.6.0 to local crate/ dir from crates.io</title>
<updated>2026-07-13T13:59:08Z</updated>
<author>
<name>dilluti0n</name>
<email>hskim@dilluti0n.com</email>
</author>
<published>2026-07-13T13:59:08Z</published>
<link rel='alternate' type='text/html' href='http://git.dilluti0n.com/dpibreak.git/commit/?id=7f5456b03fb49b37de688280d23635ba15c9cc82'/>
<id>urn:sha1:7f5456b03fb49b37de688280d23635ba15c9cc82</id>
<content type='text'>
This is pulled from cargo cache:
  cp -r ~/.cargo/registry/src/index.crates.io-*/windivert-0.6.0 \
    crates/windivert
</content>
</entry>
</feed>
