Thanks for digging this up. -----Original Message----- From: Paul Boca <[email protected]> Date: Thursday, April 21, 2016 at 11:58 PM To: Nithin Raju <[email protected]>, "[email protected]" <[email protected]> Subject: RE: [ovs-dev] [PATCH] datapath-windows: Fixed buffer overflow in OvsInitVportWithNicParam
>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:[email protected]] >Sent: Friday, April 22, 2016 6:05 AM >To: Paul Boca; [email protected] >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 <[email protected]> on behalf of Paul Boca ><[email protected]> >Date: Monday, April 18, 2016 at 12:52 AM >To: "[email protected]" <[email protected]> >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 <[email protected]> >>--- >> 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 >>[email protected] >>https://urldefense.proofpoint.com/v2/url?u=http-3A__openvswitch.org_mailm >>a >>n_listinfo_dev&d=BQIGaQ&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=p >>N >>HQcdr7B40b4h6Yb7FIedI1dnBsxdDuTLBYD3JqV80&m=1bLNUgQWl_iQvCaPGr2m9s8F4v8L2 >>f >>Bug6h3DWQopKA&s=CEIFPbcaXRdYRSic-iezwcrlPOBFvYcceYdwuN3xIQ8&e= > _______________________________________________ dev mailing list [email protected] http://openvswitch.org/mailman/listinfo/dev
