From defb8f33ff6596d59a6e54c410ccc48c8c93ea16 Mon Sep 17 00:00:00 2001 From: Frank Wagner Date: Sat, 1 Mar 2025 13:27:25 +0100 Subject: [PATCH] datapath-windows: Fix possible null reference in _MapNlAttrToOvsPktExec It can happen that ovs key attributes are not in keyAttrs of port. In this case the call of NlAttrGetU32 will cause a BSOD in Release builds. Signed-off-by: Frank Wagner Reviewed-by: Mike Pattrick Signed-off-by: Alin Gabriel Serdean --- datapath-windows/ovsext/User.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/datapath-windows/ovsext/User.c b/datapath-windows/ovsext/User.c index c4563b28b..36af34f5e 100644 --- a/datapath-windows/ovsext/User.c +++ b/datapath-windows/ovsext/User.c @@ -406,8 +406,10 @@ _MapNlAttrToOvsPktExec(PNL_MSG_HDR nlMsgHdr, PNL_ATTR *nlAttrs, execute->actions = NlAttrGet(nlAttrs[OVS_PACKET_ATTR_ACTIONS]); execute->actionsLen = NlAttrGetSize(nlAttrs[OVS_PACKET_ATTR_ACTIONS]); - ASSERT(keyAttrs[OVS_KEY_ATTR_IN_PORT]); - execute->inPort = NlAttrGetU32(keyAttrs[OVS_KEY_ATTR_IN_PORT]); + //TODO revisit and understand if this check is needed + if (keyAttrs[OVS_KEY_ATTR_IN_PORT]) { + execute->inPort = NlAttrGetU32(keyAttrs[OVS_KEY_ATTR_IN_PORT]); + } execute->keyAttrs = keyAttrs; if (nlAttrs[OVS_PACKET_ATTR_MRU]) {