Skip to content

code issue #137

@wineggdrop

Description

@wineggdrop

static VOID FilterEnumServiceStatus(LPENUM_SERVICE_STATUSW services, LPDWORD servicesReturned)
{
for (DWORD i = 0; i < *servicesReturned; i++)
{
// If hidden, move all following entries up by one and decrease count.
if (HasPrefix(services[i].lpServiceName) ||
HasPrefix(services[i].lpDisplayName) ||
IsServiceNameHidden(services[i].lpServiceName) ||
IsServiceNameHidden(services[i].lpDisplayName))
{
memmove(&services[i], &services[i + 1], (*servicesReturned - i - 1) * sizeof(ENUM_SERVICE_STATUSW));
(*servicesReturned)--;
i--;
}
}
}

what if the first service to hide when i=0,i-- would result in 4294967295.This issue occurs in more than one place

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions