Subject: | GetStatus() resets timer |
It looks like getting the service status (e.g. via
Win32::Service::GetStatus) resets the timer in Win32::Daemon. If a
process queries the service status more frequently than the timer period
set during StartService() the 'running' callback will never get executed.
This is an edge case but would allow a non-privileged user to trivially
DoS a Win32::Daemon service e.g.
while(1)
{
Win32::Service::GetStatus('','ServiceID',my $s);
sleep(1);
}