From nobody@FreeBSD.org  Thu Jun 26 22:42:34 2008
Return-Path: <nobody@FreeBSD.org>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 7944310656CA
	for <freebsd-gnats-submit@FreeBSD.org>; Thu, 26 Jun 2008 22:42:34 +0000 (UTC)
	(envelope-from nobody@FreeBSD.org)
Received: from www.freebsd.org (www.freebsd.org [IPv6:2001:4f8:fff6::21])
	by mx1.freebsd.org (Postfix) with ESMTP id 6274B8FC16
	for <freebsd-gnats-submit@FreeBSD.org>; Thu, 26 Jun 2008 22:42:34 +0000 (UTC)
	(envelope-from nobody@FreeBSD.org)
Received: from www.freebsd.org (localhost [127.0.0.1])
	by www.freebsd.org (8.14.2/8.14.2) with ESMTP id m5QMgYKd064748
	for <freebsd-gnats-submit@FreeBSD.org>; Thu, 26 Jun 2008 22:42:34 GMT
	(envelope-from nobody@www.freebsd.org)
Received: (from nobody@localhost)
	by www.freebsd.org (8.14.2/8.14.1/Submit) id m5QMgYuZ064747;
	Thu, 26 Jun 2008 22:42:34 GMT
	(envelope-from nobody)
Message-Id: <200806262242.m5QMgYuZ064747@www.freebsd.org>
Date: Thu, 26 Jun 2008 22:42:34 GMT
From: Mateusz Guzik <mjguzik@gmail.com>
To: freebsd-gnats-submit@FreeBSD.org
Subject: [devfs.rules][patch] Command 'devfs ruleset 0' causes panic
X-Send-Pr-Version: www-3.1
X-GNATS-Notify:

>Number:         125030
>Category:       kern
>Synopsis:       [devfs] [patch] Command 'devfs ruleset 0' causes panic
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    jh
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Jun 26 22:50:01 UTC 2008
>Closed-Date:    Tue Apr 12 17:56:04 UTC 2011
>Last-Modified:  Tue Apr 12 17:56:04 UTC 2011
>Originator:     Mateusz Guzik
>Release:        8.0-CURRENT
>Organization:
>Environment:
FreeBSD eternal 8.0-CURRENT FreeBSD 8.0-CURRENT #35: Fri Jun 27 00:10:53 CEST 2008     f@eternal:/usr/obj/usr/src/sys/ETERNAL  i386

>Description:
Function devfs_ruleset_use() doesn't treat rsnum = 0 as a special case and calls devfs_ruleset_create() to create it, causing panic. 
>How-To-Repeat:
Run `devfs ruleset 0'.
>Fix:
Patch is attached.

Patch attached with submission follows:

--- sys/fs/devfs/devfs_rule.c.orig	2008-06-26 23:14:23.000000000 +0200
+++ sys/fs/devfs/devfs_rule.c	2008-06-26 23:36:59.000000000 +0200
@@ -739,10 +739,15 @@
 		cds = devfs_ruleset_bynum(dm->dm_ruleset);
 		--cds->ds_refcount;
 		devfs_ruleset_reap(cds);
 	}
 
+	if (rsnum == 0) {
+		dm->dm_ruleset = 0;
+		return (0);
+	}
+
 	ds = devfs_ruleset_bynum(rsnum);
 	if (ds == NULL)
 		ds = devfs_ruleset_create(rsnum);
 	/* These should probably be made atomic somehow. */
 	++ds->ds_refcount;


>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: freebsd-bugs->jh 
Responsible-Changed-By: jh 
Responsible-Changed-When: Fri Nov 5 17:16:06 UTC 2010 
Responsible-Changed-Why:  
Take. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=125030 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: kern/125030: commit references a PR
Date: Sun, 12 Dec 2010 08:52:20 +0000 (UTC)

 Author: jh
 Date: Sun Dec 12 08:52:13 2010
 New Revision: 216391
 URL: http://svn.freebsd.org/changeset/base/216391
 
 Log:
   Handle the special ruleset 0 in devfs_ruleset_use(). An attempt set the
   current ruleset to 0 with command "devfs ruleset 0" triggered a KASSERT
   in devfs_ruleset_create().
   
   PR:		kern/125030
   Submitted by:	Mateusz Guzik
 
 Modified:
   head/sys/fs/devfs/devfs_rule.c
 
 Modified: head/sys/fs/devfs/devfs_rule.c
 ==============================================================================
 --- head/sys/fs/devfs/devfs_rule.c	Sun Dec 12 06:00:26 2010	(r216390)
 +++ head/sys/fs/devfs/devfs_rule.c	Sun Dec 12 08:52:13 2010	(r216391)
 @@ -742,6 +742,11 @@ devfs_ruleset_use(devfs_rsnum rsnum, str
  		devfs_ruleset_reap(cds);
  	}
  
 +	if (rsnum == 0) {
 +		dm->dm_ruleset = 0;
 +		return (0);
 +	}
 +
  	ds = devfs_ruleset_bynum(rsnum);
  	if (ds == NULL)
  		ds = devfs_ruleset_create(rsnum);
 _______________________________________________
 svn-src-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-src-all
 To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
 
State-Changed-From-To: open->patched 
State-Changed-By: jh 
State-Changed-When: Sun Dec 12 09:21:35 UTC 2010 
State-Changed-Why:  
Patched in head (r216391). 

http://www.freebsd.org/cgi/query-pr.cgi?pr=125030 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: kern/125030: commit references a PR
Date: Tue, 12 Apr 2011 16:43:44 +0000 (UTC)

 Author: jh
 Date: Tue Apr 12 16:43:29 2011
 New Revision: 220570
 URL: http://svn.freebsd.org/changeset/base/220570
 
 Log:
   MFC r216391:
   
   Handle the special ruleset 0 in devfs_ruleset_use(). An attempt set the
   current ruleset to 0 with command "devfs ruleset 0" triggered a KASSERT
   in devfs_ruleset_create().
   
   PR:		kern/125030
 
 Modified:
   stable/8/sys/fs/devfs/devfs_rule.c
 Directory Properties:
   stable/8/sys/   (props changed)
   stable/8/sys/amd64/include/xen/   (props changed)
   stable/8/sys/cddl/contrib/opensolaris/   (props changed)
   stable/8/sys/contrib/dev/acpica/   (props changed)
   stable/8/sys/contrib/pf/   (props changed)
 
 Modified: stable/8/sys/fs/devfs/devfs_rule.c
 ==============================================================================
 --- stable/8/sys/fs/devfs/devfs_rule.c	Tue Apr 12 16:01:27 2011	(r220569)
 +++ stable/8/sys/fs/devfs/devfs_rule.c	Tue Apr 12 16:43:29 2011	(r220570)
 @@ -742,6 +742,11 @@ devfs_ruleset_use(devfs_rsnum rsnum, str
  		devfs_ruleset_reap(cds);
  	}
  
 +	if (rsnum == 0) {
 +		dm->dm_ruleset = 0;
 +		return (0);
 +	}
 +
  	ds = devfs_ruleset_bynum(rsnum);
  	if (ds == NULL)
  		ds = devfs_ruleset_create(rsnum);
 _______________________________________________
 svn-src-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-src-all
 To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
 

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: kern/125030: commit references a PR
Date: Tue, 12 Apr 2011 16:52:18 +0000 (UTC)

 Author: jh
 Date: Tue Apr 12 16:52:05 2011
 New Revision: 220571
 URL: http://svn.freebsd.org/changeset/base/220571
 
 Log:
   MFC r216391:
   
   Handle the special ruleset 0 in devfs_ruleset_use(). An attempt set the
   current ruleset to 0 with command "devfs ruleset 0" triggered a KASSERT
   in devfs_ruleset_create().
   
   PR:		kern/125030
 
 Modified:
   stable/7/sys/fs/devfs/devfs_rule.c
 Directory Properties:
   stable/7/sys/   (props changed)
   stable/7/sys/cddl/contrib/opensolaris/   (props changed)
   stable/7/sys/contrib/dev/acpica/   (props changed)
   stable/7/sys/contrib/pf/   (props changed)
 
 Modified: stable/7/sys/fs/devfs/devfs_rule.c
 ==============================================================================
 --- stable/7/sys/fs/devfs/devfs_rule.c	Tue Apr 12 16:43:29 2011	(r220570)
 +++ stable/7/sys/fs/devfs/devfs_rule.c	Tue Apr 12 16:52:05 2011	(r220571)
 @@ -741,6 +741,11 @@ devfs_ruleset_use(devfs_rsnum rsnum, str
  		devfs_ruleset_reap(cds);
  	}
  
 +	if (rsnum == 0) {
 +		dm->dm_ruleset = 0;
 +		return (0);
 +	}
 +
  	ds = devfs_ruleset_bynum(rsnum);
  	if (ds == NULL)
  		ds = devfs_ruleset_create(rsnum);
 _______________________________________________
 svn-src-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/svn-src-all
 To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"
 
State-Changed-From-To: patched->closed 
State-Changed-By: jh 
State-Changed-When: Tue Apr 12 17:56:03 UTC 2011 
State-Changed-Why:  
Fixed in head, stable/8 and stable/7. Thanks! 

http://www.freebsd.org/cgi/query-pr.cgi?pr=125030 
>Unformatted:
