NetBSD Problem Report #41701

From mmondor@pulsar-zone.net  Sun Jul 12 03:25:44 2009
Return-Path: <mmondor@pulsar-zone.net>
Received: from mail.netbsd.org (mail.netbsd.org [204.152.190.11])
	by www.NetBSD.org (Postfix) with ESMTP id 21AA463B913
	for <gnats-bugs@gnats.NetBSD.org>; Sun, 12 Jul 2009 03:25:44 +0000 (UTC)
Message-Id: <200907120325.n6C3Pgpa018241@ginseng.xisop>
Date: Sat, 11 Jul 2009 23:25:42 -0400 (EDT)
From: Matthew Mondor <mm_lists@pulsar-zone.net>
Reply-To: gnats-bugs@netbsd.org
To: gnats-bugs@gnats.NetBSD.org
Subject: sys/ipsec/ipsec.c missing splx() call
X-Send-Pr-Version: 3.95

>Number:         41701
>Category:       kern
>Synopsis:       sys/ipsec/ipsec.c missing splx() call
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    kern-bug-people
>State:          closed
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Jul 12 03:30:01 +0000 2009
>Closed-Date:    Thu Oct 08 03:27:24 +0000 2009
>Last-Modified:  Thu Oct 08 03:30:02 +0000 2009
>Originator:     Matthew Mondor
>Release:        NetBSD 5.0_STABLE
>Organization:
>Environment:
System: NetBSD ginseng.xisop 5.0_STABLE NetBSD 5.0_STABLE (GENERIC_MM) #1: Thu Jul 9 01:57:16 EDT 2009 root@behemoth.xisop:/usr/obj/sys/arch/i386/compile/GENERIC_MM i386
Architecture: i386
Machine: i386
>Description:
	There recently was a pulled-up and closed PR about a similar
	issue in the ipv4 stack (kern/41659).  I thought I'd check
	the ipv6 stack for a similar problem considering the
	heritage.  ip6_output.c seemed fine but delegated to
	netipsec/ipsec.c:ipsec6_check_policy() which had the same
	problem.
>How-To-Repeat:
>Fix:

--- ./sys/netipsec/ipsec.c.orig	2008-12-31 07:43:14.000000000 -0500
+++ ./sys/netipsec/ipsec.c	2009-07-11 23:20:10.000000000 -0400
@@ -2197,8 +2197,10 @@ ipsec6_check_policy(struct mbuf * m, con
 	if (!ipsec_outdone(m)) {
 		s = splsoftnet();
 		if (in6p != NULL &&
-				IPSEC_PCB_SKIP_IPSEC(in6p->in6p_sp, IPSEC_DIR_OUTBOUND))
+		    IPSEC_PCB_SKIP_IPSEC(in6p->in6p_sp, IPSEC_DIR_OUTBOUND)) {
+			splx(s);
 			goto skippolicycheck;
+		}
 		sp = ipsec6_checkpolicy(m, IPSEC_DIR_OUTBOUND, flags, &error,in6p);

 		/*

>Release-Note:

>Audit-Trail:

State-Changed-From-To: open->pending-pullups
State-Changed-By: jakllsch@NetBSD.org
State-Changed-When: Thu, 30 Jul 2009 21:18:10 +0000
State-Changed-Why:
pullup-5 #884


From: jakllsch@NetBSD.org
To: kern-bug-people@netbsd.org,netbsd-bugs@netbsd.org,gnats-admin@netbsd.org,jakllsch@NetBSD.org,gnats-bugs@netbsd.org
Cc: 
Subject: Re: kern/41701 (sys/ipsec/ipsec.c missing splx() call)
Date: Thu, 30 Jul 2009 21:18:13 +0000 (UTC)

 Synopsis: sys/ipsec/ipsec.c missing splx() call

 State-Changed-From-To: open->pending-pullups
 State-Changed-By: jakllsch@NetBSD.org
 State-Changed-When: Thu, 30 Jul 2009 21:18:10 +0000
 State-Changed-Why:
 pullup-5 #884



State-Changed-From-To: pending-pullups->closed
State-Changed-By: snj@NetBSD.org
State-Changed-When: Thu, 08 Oct 2009 03:27:24 +0000
State-Changed-Why:
Fixed and pulled up.  Thanks for the PR!



From: snj@NetBSD.org
To: kern-bug-people@netbsd.org,netbsd-bugs@netbsd.org,gnats-admin@netbsd.org,snj@NetBSD.org,gnats-bugs@netbsd.org
Cc: 
Subject: Re: kern/41701 (sys/ipsec/ipsec.c missing splx() call)
Date: Thu,  8 Oct 2009 03:27:25 +0000 (UTC)

 Synopsis: sys/ipsec/ipsec.c missing splx() call

 State-Changed-From-To: pending-pullups->closed
 State-Changed-By: snj@NetBSD.org
 State-Changed-When: Thu, 08 Oct 2009 03:27:24 +0000
 State-Changed-Why:
 Fixed and pulled up.  Thanks for the PR!




>Unformatted:

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2007 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.