[ovs-dev] [PATCH] [PATCH] datapath-windows - fix crash when internal port is removed

Eitan Eliahu eliahue at vmware.com
Fri Aug 1 17:12:28 UTC 2014



Here is the patch:
datapath-windows/ovsext/OvsActions.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/datapath-windows/ovsext/OvsActions.c b/datapath-windows/ovsext/OvsActions.c
index 79fb50f..4a2c117 100644
--- a/datapath-windows/ovsext/OvsActions.c
+++ b/datapath-windows/ovsext/OvsActions.c
@@ -581,7 +581,12 @@ OvsTunnelPortTx(OvsForwardingContext *ovsFwdCtx)
      * Setup the source port to be the internal port to as to facilitate the
      * second OvsLookupFlow.
      */
-    ASSERT(ovsFwdCtx->switchContext->internalVport);
+    if (ovsFwdCtx->switchContext->internalVport == NULL) {
+        OvsClearTunTxCtx(ovsFwdCtx);
+        OvsCompleteNBLForwardingCtx(ovsFwdCtx,
+            L"OVS-Dropped since internal port is absent");
+        return NDIS_STATUS_FAILURE;
+    }
     ovsFwdCtx->srcVportNo =
         ((POVS_VPORT_ENTRY)ovsFwdCtx->switchContext->internalVport)->portNo;

Thanks Alin.
Eitan

-----Original Message-----
From: dev [mailto:dev-bounces at openvswitch.org] On Behalf Of Eitan Eliahu
Sent: Friday, August 01, 2014 10:05 AM
To: Alin Serdean; Saurabh Shah; dev at openvswitch.org
Subject: Re: [ovs-dev] [PATCH] [PATCH] datapath-windows - fix crash when internal port is removed

Hi Alin,
Please go ahead and test the patch, There is no v2. The patch is here.
Thank you!
Eitan

-----Original Message-----
From: Alin Serdean [mailto:aserdean at cloudbasesolutions.com]
Sent: Friday, August 01, 2014 9:57 AM
To: Saurabh Shah; Eitan Eliahu; dev at openvswitch.org
Subject: RE: [ovs-dev] [PATCH] [PATCH] datapath-windows - fix crash when internal port is removed

I would like to test it out also to make sure the issue does not reproduce.

Please put me in copy on the "[PATCH v2]" so I am sure that I got the latest one.

Kind Regards,
Alin.
________________________________________
From: dev [dev-bounces at openvswitch.org] on behalf of Saurabh Shah [ssaurabh at vmware.com]
Sent: Friday, August 01, 2014 7:51 PM
To: Eitan Eliahu; dev at openvswitch.org
Subject: Re: [ovs-dev] [PATCH] [PATCH] datapath-windows - fix crash when internal port is removed

I think since we are allowing AllowManagementOS to be disabled we shouldn't crash on debug builds either. Can you please test on a debug build to make sure it doesn't crash?

Also, it would help if you version the patches such as "[PATCH v2]", so that its easy to know which is the latest one.

Thanks!
Saurabh




From:  Eitan Eliahu <eliahue at vmware.com>
Date:  Thursday, July 31, 2014 at 4:46 PM
To:  Saurabh Shah <ssaurabh at vmware.com>, "dev at openvswitch.org"
<dev at openvswitch.org>
Subject:  RE: [ovs-dev] [PATCH] [PATCH] datapath-windows - fix crash when internal port is removed


>Hi Saurabh, I removed the assert in the next patch I posted. But, in 
>anyway, since ASSERT does not generate any code for release build it 
>does work.
>Thanks,
>Eitan
>
>-----Original Message-----
>From: Saurabh Shah
>Sent: Thursday, July 31, 2014 4:40 PM
>To: Eitan Eliahu; dev at openvswitch.org
>Subject: Re: [ovs-dev] [PATCH] [PATCH] datapath-windows - fix crash 
>when internal port is removed
>
>Hey Eitan,
>
>>BSOD while setting AllowManagementOS on $false #13 
>>https://urldefense.proofpoint.com/v1/url?u=https://github.com/openvswi
>>t
>>ch/
>>ovs/issues/13&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=pEkjsHfytvHEWufeZP
>>p
>>gqS
>>OJMdMjuZPbesVsNhCUc0E%3D%0A&m=HCvhWNhGzijQI9QgNS1Zm2FCfEDPf3DswRG1vK1p
>>1
>>xA%
>>3D%0A&s=3baeac3a021beacd5bca20512dd65dd5ec8ae5704a6e841fc8e49dd8854d96
>>2
>>c
>>
>>Signed-off-by: Eitan Eliahu <eliahue at vmware.com>
>>---
>> datapath-windows/ovsext/OvsActions.c | 7 ++++++-
>> 1 file changed, 6 insertions(+), 1 deletion(-)
>>
>>diff --git a/datapath-windows/ovsext/OvsActions.c
>>b/datapath-windows/ovsext/OvsActions.c
>>index 79fb50f..62a98fa 100644
>>--- a/datapath-windows/ovsext/OvsActions.c
>>+++ b/datapath-windows/ovsext/OvsActions.c
>>@@ -581,7 +581,12 @@ OvsTunnelPortTx(OvsForwardingContext *ovsFwdCtx)
>>      * Setup the source port to be the internal port to as to 
>>facilitate the
>>      * second OvsLookupFlow.
>>      */
>>-    ASSERT(ovsFwdCtx->switchContext->internalVport);
>>+    if (ovsFwdCtx->switchContext->internalVport == NULL) {
>>+        ASSERT(ovsFwdCtx->switchContext->internalVport);
>
>This can¹t work because you are still asserting in the if() case. 
>Perhaps you forgot to remove the assert?
>
>>+        OvsCompleteNBLForwardingCtx(ovsFwdCtx,
>>+                                    L"OVS-Dropped - internal port
>>removed");
>>+        return NDIS_STATUS_FAILURE;
>>+    }
>>     ovsFwdCtx->srcVportNo =
>>
>>((POVS_VPORT_ENTRY)ovsFwdCtx->switchContext->internalVport)->portNo;
>>
>>--
>>1.9.4.msysgit.0
>>
>>_______________________________________________
>>dev mailing list
>>dev at openvswitch.org
>>https://urldefense.proofpoint.com/v1/url?u=http://openvswitch.org/mail
>>m
>>an/
>>listinfo/dev&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=pEkjsHfytvHEWufeZPp
>>g
>>qSO
>>JMdMjuZPbesVsNhCUc0E%3D%0A&m=HCvhWNhGzijQI9QgNS1Zm2FCfEDPf3DswRG1vK1p1
>>x
>>A%3
>>D%0A&s=07541f072b93faa9856ed01110b08324cb70c378a3d546fd5ea1e1d16ac13ac
>>4

_______________________________________________
dev mailing list
dev at openvswitch.org
https://urldefense.proofpoint.com/v1/url?u=http://openvswitch.org/mailman/listinfo/dev&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=yTvML8OxA42Jb6ViHe7fUXbvPVOYDPVq87w43doxtlY%3D%0A&m=Y0Im%2BnbG9BcotQ6iV7u9VOL%2FtXyGgIarrCJy7n8mauY%3D%0A&s=566a046c5c108f3cf51ea938bdc9a1d9e7cde04e46b9d7d95433579f05bb2598
_______________________________________________
dev mailing list
dev at openvswitch.org
https://urldefense.proofpoint.com/v1/url?u=http://openvswitch.org/mailman/listinfo/dev&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=yTvML8OxA42Jb6ViHe7fUXbvPVOYDPVq87w43doxtlY%3D%0A&m=rRsujuuH66hiuA9%2B42k2JySF1n5yWQADBowf8oEI15s%3D%0A&s=b488c58ee86d4898e3726b922c36e09f0410e6f08f8a616b32a0d8097737e03d



More information about the dev mailing list