return err; 
goto out; 
static int pfkey_add(struct sock *sk, struct sk_buff *skb, struct sadb_msg *hdr, void **ext_hdrs){	struct xfrm_state *x;	int err;	struct km_event c;	xfrm_probe_algs();		x = pfkey_msg2xfrm_state(hdr, ext_hdrs);	if (IS_ERR(x))		return PTR_ERR(x);	xfrm_state_hold(x);	if (hdr->sadb_msg_type == SADB_ADD)		err = xfrm_state_add(x);	else		err = xfrm_state_update(x);	if (err < 0) {		x->km.state = XFRM_STATE_DEAD;		xfrm_state_put(x);		return err;	}	if (hdr->sadb_msg_type == SADB_ADD)		c.event = XFRM_MSG_NEWSA;	else		c.event = XFRM_MSG_UPDSA;	c.seq = hdr->sadb_msg_seq;	c.pid = hdr->sadb_msg_pid;	km_state_notify(x, &c);	xfrm_state_put(x);	return err;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/7d6dfe1f5bc4c56e0c31173014a099ec3fa35907/af_key.c/buggy/net/key/af_key.c