: set state to XFRM_STATE_DEAD before calling xfrm_state_put in pfkey_msg2xfrm_state
Subsystems (2)
PATCH 1/1 : set state to XFRM_STATE_DEAD before calling xfrm_state_put in pfkey_msg2xfrm_state
This patch sets x->state to XFRM_STATE_DEAD before calling xfrm_state_put in pfkey_msg2xfrm_state to avoid triggering the BUG_TRAP in __xfrm_state_destroy. The patch applies to both 2.5 and the 2.4 backport.
Best regards,
Patrick
# This is a BitKeeper generated patch for the following project:
# Project Name: Linux kernel tree
# This patch format is intended for GNU patch command version 2.5 or higher.
# This patch includes the following deltas:
# ChangeSet 1.1113 -> 1.1114
# net/key/af_key.c 1.35 -> 1.36
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 03/05/14 [email protected] 1.1114
# [IPSEC]: set state to XFRM_STATE_DEAD before calling xfrm_state_put in pfkey_msg2xfrm_state # --------------------------------------------
#
net/key/af_key.c +1 -0
@@ -1090,6 +1090,7 @@return x; out: + x->type =XFRM_STATE_DEAD ;xfrm_state_put (x);return ERR_PTR (-ENOBUFS ); }
From: Patrick McHardy <[email protected]>
Date: Wed, 14 May 2003 17:00:13 +0200
This patch sets x->state to XFRM_STATE_DEAD before calling xfrm_state_put in pfkey_msg2xfrm_state to avoid triggering the BUG_TRAP in __xfrm_state_destroy. The patch applies to both 2.5 and the 2.4 backport.
You didn't test this change. x->type is a pointer, not a place where you put XFRM_STATE_DEAD, a simple compile test would have alerted this to you.
This also means you couldn't possibly have tested if this even makes the assertion go away, it couldn't possibly have fixed this..
The correct fix, of course, is to set x->km.state to this value. This is what I've done in my tree.
Please be a LOT more careful with your changes.
Quoted 5 lines · David S. Miller
You didn't test this change.
x->typeis a pointer, not a place where you putXFRM_STATE_DEAD, a simple compile test would have alerted this to you.
Sorry about that, i recreated the fix in a different tree and broke it.
Quoted 8 lines
This also means you couldn't possibly have tested if this even makes the assertion go away, it couldn't possibly have fixed this..
The correct fix, of course, is to set
x->km.stateto this value. This is what I've done in my tree.Please be a LOT more careful with your changes.
Promised.