From mboxrd@z Thu Jan 1 00:00:00 1970 From: Shannon Nelson Subject: [PATCH v2 ipsec-next 1/3] xfrm: check for xdo_dev_state_free Date: Thu, 14 Dec 2017 13:01:15 -0800 Message-ID: <1513285277-21092-2-git-send-email-shannon.nelson@oracle.com> References: <1513285277-21092-1-git-send-email-shannon.nelson@oracle.com> Cc: netdev@vger.kernel.org To: steffen.klassert@secunet.com Return-path: Received: from userp2120.oracle.com ([156.151.31.85]:40820 "EHLO userp2120.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753012AbdLNVB3 (ORCPT ); Thu, 14 Dec 2017 16:01:29 -0500 In-Reply-To: <1513285277-21092-1-git-send-email-shannon.nelson@oracle.com> Sender: netdev-owner@vger.kernel.org List-ID: The current XFRM code assumes that we've implemented the xdo_dev_state_free() callback, even if it is meaningless to the driver. This patch adds a check for it before calling, as done in other APIs, to prevent a NULL function pointer kernel crash. Signed-off-by: Shannon Nelson --- include/net/xfrm.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/net/xfrm.h b/include/net/xfrm.h index e015e16..dfabd04 100644 --- a/include/net/xfrm.h +++ b/include/net/xfrm.h @@ -1891,7 +1891,8 @@ static inline void xfrm_dev_state_free(struct xfrm_state *x) struct net_device *dev = xso->dev; if (dev && dev->xfrmdev_ops) { - dev->xfrmdev_ops->xdo_dev_state_free(x); + if (dev->xfrmdev_ops->xdo_dev_state_free) + dev->xfrmdev_ops->xdo_dev_state_free(x); xso->dev = NULL; dev_put(dev); } -- 2.7.4