- Check if NodeId is out of bounds

- Return correct status code

svn path=/trunk/; revision=43253
This commit is contained in:
Johannes Anderwald 2009-10-02 10:53:36 +00:00
parent 9ef3f7c1a2
commit 2f541881a8

View file

@ -241,6 +241,13 @@ KsTopologyPropertyHandler(
case KSPROPERTY_TOPOLOGY_NAME: case KSPROPERTY_TOPOLOGY_NAME:
Node = (KSP_NODE*)Property; Node = (KSP_NODE*)Property;
if (Node->NodeId >= Topology->TopologyNodesCount)
{
Irp->IoStatus.Information = 0;
Status = STATUS_INVALID_PARAMETER;
break;
}
Status = RtlStringFromGUID(&Topology->TopologyNodesNames[Node->NodeId], &GuidString); Status = RtlStringFromGUID(&Topology->TopologyNodesNames[Node->NodeId], &GuidString);
if (!NT_SUCCESS(Status)) if (!NT_SUCCESS(Status))
{ {
@ -254,6 +261,7 @@ KsTopologyPropertyHandler(
if (!KeyName.Buffer) if (!KeyName.Buffer)
{ {
Irp->IoStatus.Information = 0; Irp->IoStatus.Information = 0;
Status = STATUS_INSUFFICIENT_RESOURCES;
break; break;
} }