From 3e169e3cb2d9db197b61ddd9f7955e9038817cb3 Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Mon, 6 Dec 2010 04:39:57 +0000 Subject: [PATCH] [NDIS] - Add a missing spin lock release in a failure case - Fix incomplete copying of NDIS 5.1 miniport characteristics svn path=/trunk/; revision=49961 --- reactos/drivers/network/ndis/ndis/miniport.c | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/reactos/drivers/network/ndis/ndis/miniport.c b/reactos/drivers/network/ndis/ndis/miniport.c index bfe41237f4d..8b551db8a13 100644 --- a/reactos/drivers/network/ndis/ndis/miniport.c +++ b/reactos/drivers/network/ndis/ndis/miniport.c @@ -316,6 +316,7 @@ MiniIndicateReceivePacket( if (!LookAheadBuffer) { NDIS_DbgPrint(MIN_TRACE, ("Failed to allocate lookahead buffer!\n")); + KeReleaseSpinLock(&Adapter->NdisMiniportBlock.Lock, OldIrql); return; } @@ -2454,7 +2455,20 @@ NdisMRegisterMiniport( break; case 0x05: - MinSize = sizeof(NDIS50_MINIPORT_CHARACTERISTICS); + switch (MiniportCharacteristics->MinorNdisVersion) + { + case 0x00: + MinSize = sizeof(NDIS50_MINIPORT_CHARACTERISTICS); + break; + + case 0x01: + MinSize = sizeof(NDIS51_MINIPORT_CHARACTERISTICS); + break; + + default: + NDIS_DbgPrint(MIN_TRACE, ("Bad 5.x minor characteristics version.\n")); + return NDIS_STATUS_BAD_VERSION; + } break; default: @@ -2532,8 +2546,6 @@ NdisMRegisterMiniport( } } - /* TODO: verify NDIS5 and NDIS5.1 */ - RtlCopyMemory(&Miniport->MiniportCharacteristics, MiniportCharacteristics, MinSize); /*