svn commit: r188613 - head/sys/kern

Kostik Belousov kostikbel at gmail.com
Sat Feb 14 13:16:30 PST 2009


On Sat, Feb 14, 2009 at 09:12:24PM +0000, Joe Marcus Clarke wrote:
> Author: marcus (doc,ports committer)
> Date: Sat Feb 14 21:12:24 2009
> New Revision: 188613
> URL: http://svn.freebsd.org/changeset/base/188613
> 
> Log:
>   Change two KASSERTS to printfs and simple returns.  Stress testing has
>   revealed that a process' current working directory can be VBAD if the
>   directory is removed.  This can trigger a panic when procstat -f PID is
>   run.
>   
>   Tested by:	pho
>   Discovered by:	phobot
>   Reviewed by:	kib
>   Approved by:	kib
> 
> Modified:
>   head/sys/kern/kern_descrip.c
> 
> Modified: head/sys/kern/kern_descrip.c
> ==============================================================================
> --- head/sys/kern/kern_descrip.c	Sat Feb 14 21:08:40 2009	(r188612)
> +++ head/sys/kern/kern_descrip.c	Sat Feb 14 21:12:24 2009	(r188613)
> @@ -2532,7 +2532,12 @@ export_vnode_for_osysctl(struct vnode *v
>  	kif->kf_fd = type;
>  	kif->kf_type = KF_TYPE_VNODE;
>  	/* This function only handles directories. */
> -	KASSERT(vp->v_type == VDIR, ("export_vnode_for_osysctl: vnode not directory"));
> +	if (vp->v_type != VDIR) {
> +		printf("export_vnode_for_osysctl: vnode not directory: %d\n",
> +		    vp->v_type);
> +		vrele(vp);
> +		return (ENOTDIR);
> +	}
>  	kif->kf_vnode_type = KF_VTYPE_VDIR;
>  
>  	/*
> @@ -2779,7 +2784,12 @@ export_vnode_for_sysctl(struct vnode *vp
>  	kif->kf_fd = type;
>  	kif->kf_type = KF_TYPE_VNODE;
>  	/* This function only handles directories. */
> -	KASSERT(vp->v_type == VDIR, ("export_vnode_for_sysctl: vnode not directory"));
> +	if (vp->v_type != VDIR) {
> +		printf("export_vnode_for_sysctl: vnode not directory: %d\n",
> +		    vp->v_type);
> +		vrele(vp);
> +		return (ENOTDIR);
> +	}
>  	kif->kf_vnode_type = KF_VTYPE_VDIR;
>  
>  	/*
You are fast. Do we need these printf ?
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/svn-src-all/attachments/20090214/bd081468/attachment.pgp


More information about the svn-src-all mailing list