Thanks for review!

You're right Nithin, there's no reason to extend to 32 bytes.
I've searched about why Microsoft added that size to MAC address and found in 
NDIS_FILTER_ATTACH_PARAMETERS that there is a field MacAddressLength specific 
to 
the type media, but for NdisMedium802_3 it is indeed 6 bytes.
Will resubmit a V2 patch with this updated.

Paul

-----Original Message-----
From: Nithin Raju [mailto:nit...@vmware.com] 
Sent: Friday, April 22, 2016 6:05 AM
To: Paul Boca; dev@openvswitch.org
Subject: Re: [ovs-dev] [PATCH] datapath-windows: Fixed buffer overflow in 
OvsInitVportWithNicParam

Why do we need ethernet address to be macAddress to be 32 bytes?

We should just make sure that when we copy, we use sizeof (<destination>)
and in this case, it is sizeof (vport->macAddress).

-- Nithin

-----Original Message-----
From: dev <dev-boun...@openvswitch.org> on behalf of Paul Boca
<pb...@cloudbasesolutions.com>
Date: Monday, April 18, 2016 at 12:52 AM
To: "dev@openvswitch.org" <dev@openvswitch.org>
Subject: [ovs-dev] [PATCH] datapath-windows: Fixed buffer overflow in
OvsInitVportWithNicParam

>nicParam->PermanentMacAddress is 32 bytes and vport->permMacAddress is 6
>bytes
>
>Signed-off-by: Paul-Daniel Boca <pb...@cloudbasesolutions.com>
>---
> datapath-windows/ovsext/DpInternal.h | 6 +++---
> datapath-windows/ovsext/Vport.h      | 6 +++---
> 2 files changed, 6 insertions(+), 6 deletions(-)
>
>diff --git a/datapath-windows/ovsext/DpInternal.h
>b/datapath-windows/ovsext/DpInternal.h
>index a3ce311..760552d 100644
>--- a/datapath-windows/ovsext/DpInternal.h
>+++ b/datapath-windows/ovsext/DpInternal.h
>@@ -41,9 +41,9 @@ typedef struct _OVS_VPORT_GET {
> typedef struct _OVS_VPORT_EXT_INFO {
>     uint32_t dpNo;
>     uint32_t portNo;
>-    uint8_t macAddress[ETH_ADDR_LEN];
>-    uint8_t permMACAddress[ETH_ADDR_LEN];
>-    uint8_t vmMACAddress[ETH_ADDR_LEN];
>+    uint8_t macAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH];
>+    uint8_t permMACAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH];
>+    uint8_t vmMACAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH];
>     uint16_t nicIndex;
>     uint32_t portId;
>     uint32_t type;
>diff --git a/datapath-windows/ovsext/Vport.h
>b/datapath-windows/ovsext/Vport.h
>index 373896d..3f18eb1 100644
>--- a/datapath-windows/ovsext/Vport.h
>+++ b/datapath-windows/ovsext/Vport.h
>@@ -102,9 +102,9 @@ typedef struct _OVS_VPORT_ENTRY {
>     NDIS_SWITCH_NIC_STATE  nicState;
>     NDIS_SWITCH_PORT_TYPE  portType;
> 
>-    UINT8                  permMacAddress[ETH_ADDR_LEN];
>-    UINT8                  currMacAddress[ETH_ADDR_LEN];
>-    UINT8                  vmMacAddress[ETH_ADDR_LEN];
>+    UINT8                  permMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH];
>+    UINT8                  currMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH];
>+    UINT8                  vmMacAddress[NDIS_MAX_PHYS_ADDRESS_LENGTH];
> 
>     NDIS_SWITCH_PORT_NAME  hvPortName;
>     IF_COUNTED_STRING      portFriendlyName;
>-- 
>2.7.2.windows.1
>_______________________________________________
>dev mailing list
>dev@openvswitch.org
>https://urldefense.proofpoint.com/v2/url?u=http-3A__openvswitch.org_mailma
>n_listinfo_dev&d=BQIGaQ&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=pN
>HQcdr7B40b4h6Yb7FIedI1dnBsxdDuTLBYD3JqV80&m=1bLNUgQWl_iQvCaPGr2m9s8F4v8L2f
>Bug6h3DWQopKA&s=CEIFPbcaXRdYRSic-iezwcrlPOBFvYcceYdwuN3xIQ8&e= 

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to