TechnikEmpire / HttpFilteringEngine

Transparent filtering TLS proxy.
Mozilla Public License 2.0
59 stars 33 forks source link

WinDiverter class uses single buffer with multiple threads. #97

Closed TechnikEmpire closed 7 years ago

TechnikEmpire commented 7 years ago

Have no idea how this ever went unnoticed and how this never appeared to have ever caused an issue before. The WinDiverter class uses multiple threads to do packet IO in the RunDiversion method but uses a local class member as the packet buffer in that threaded method. I probably threw the multithreading after the fact, but I am at a total loss to explain how this has not manifested a single problem in functionality to date.

TechnikEmpire commented 7 years ago

The WinDivertRecv function is providing synchronization here, preventing any issues. If the Ex version(s) were used, this would be a huge problem and the buffer would need to be local.

TechnikEmpire commented 7 years ago

This was fixed ages ago. Issue tags got mixed up after moving to and back from private repo.