[ofw] [PATCH] winverbs: EP is not in a provider list, so don't try to remove it

Sean Hefty sean.hefty at intel.com
Tue Aug 25 17:17:07 PDT 2009


Endpoints are not maintained in a list associated with a provider.  The list
entry for an endpoint is used to track connection requests with listens.  When
an endpoint is unassociated from a listen, it is removed from the listen list.
Trying to remove it from a list during provider cleanup results in a duplicate
removal, can corrupt the listen list, and may access freed memory.

Signed-off-by: Sean Hefty <sean.hefty at intel.com>
---
This patch should go into winof 2.1

Index: core/winverbs/kernel/wv_provider.c
===================================================================
--- core/winverbs/kernel/wv_provider.c	(revision 2373)
+++ core/winverbs/kernel/wv_provider.c	(working copy)
@@ -102,7 +102,6 @@
 		}
 	}
 	while ((ep = IndexListRemoveHead(&pProvider->EpIndex)) != NULL) {
-		RemoveEntryList(&ep->Entry);
 		WvEpFree(ep);
 	}
 	while ((ah = IndexListRemoveHead(&pProvider->AhIndex)) != NULL) {

-------------- next part --------------
A non-text attachment was scrubbed...
Name: wv-ep.diff
Type: application/octet-stream
Size: 437 bytes
Desc: not available
URL: <http://lists.openfabrics.org/pipermail/ofw/attachments/20090825/3e19dfc4/attachment.obj>


More information about the ofw mailing list