OpenVPN / openvpn-gui

OpenVPN GUI is a graphical frontend for OpenVPN running on Windows 7 / 8 / 10. It creates an icon in the notification area from which you can control OpenVPN to start/stop your VPN tunnels, view the log and do other useful things.
Other
1.38k stars 397 forks source link

Tray icon context menu triggers filesystem walk #664

Open azanegin opened 7 months ago

azanegin commented 7 months ago

Misconfiguration of openvpn-gui may lead to slow appearence of contex menu.

I'm using version v11.46.0.0 but looks like its not novel.

Process Explorer shows the reason for it - each time we do right-click on a tray icon, it executes a filesystem search with unlimited depth (also ignoring convetions of exclusion of leading-dot folders) for .ovpn config files.

In my case, misconfiguration (using %HOME% folder for a config search path) lead to something akin to 5-10 second wait between a click and a menu appearing on a screen.

This results in steep drop of usabiliy. Whats worse, it is a nightmare to diagnose, because if you google "openvpn gui slow tray" and such, it fixates on "openvpn slow" part.

A simple and probably stupid fix idea would be to do the scan not before opening the context menu, but after that. Users will miss on a new config once, but will be able to already known ones.