[Bug] UninstallerAutomatizer daemon deadloops on client disconnection

Author: SecretLULCreated Aug 24, 2026Updated Aug 24, 2026

Description

In \UninstallHandler.DaemonThread(), when a named pipe client disconnects,
eader.ReadLine()\ returns
ull. The handler enters an infinite spin loop (\if (line == null) { Thread.Sleep(500); continue; }) without ever breaking out of the inner loop or calling \server.Disconnect(). This permanently blocks the daemon from accepting any subsequent connections from batch uninstallation tasks.

Additionally, _automationThread\ had \IsBackground = false, keeping a zombie process alive if the application exited.

Expected Behavior

  • The daemon should break from the read loop on client disconnect and wait for subsequent pipe connections.
  • Daemon threads should run as background threads.

Source: BCUninstaller/Bulk-Crap-Uninstaller