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 <[email protected]>
---
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) {

Attachment: wv-ep.diff
Description: Binary data

_______________________________________________
ofw mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw

Reply via email to