Re: VOP_* changes causes NULL ptr dereference for acl_get_file(3)

From: Poul-Henning Kamp <phk_at_phk.freebsd.dk>
Date: Fri, 03 Dec 2004 08:07:15 +0100
Can you try this patch instead:


Index: kern/vfs_default.c
===================================================================
RCS file: /home/ncvs/src/sys/kern/vfs_default.c,v
retrieving revision 1.109
diff -u -r1.109 vfs_default.c
--- kern/vfs_default.c	1 Dec 2004 23:16:36 -0000	1.109
+++ kern/vfs_default.c	3 Dec 2004 07:06:35 -0000
_at__at_ -72,6 +72,8 _at__at_
 
 struct vop_vector default_vnodeops = {
 	.vop_default =		NULL,
+	.vop_bypass =		VOP_EOPNOTSUPP,
+
 	.vop_advlock =		VOP_EINVAL,
 	.vop_bmap =		vop_stdbmap,
 	.vop_close =		VOP_NULL,
_at__at_ -79,7 +81,7 _at__at_
 	.vop_destroyvobject =	vop_stddestroyvobject,
 	.vop_fsync =		VOP_NULL,
 	.vop_getpages =		vop_stdgetpages,
-	.vop_getvobject =		vop_stdgetvobject,
+	.vop_getvobject =	vop_stdgetvobject,
 	.vop_getwritemount = 	vop_stdgetwritemount,
 	.vop_inactive =		vop_stdinactive,
 	.vop_ioctl =		VOP_ENOTTY,


In message <Pine.NEB.3.96L.1041202233327.34029M-100000_at_fledge.watson.org>, Robe
rt Watson writes:
>On Thu, 2 Dec 2004, Mark Santcroos wrote:
>
>> I need at least the following patch to keep my system alive.  A simple
>> call to acl_get_file(3) is enough to crash the machine. 
>> 
>> You will have to think a bit more about how you want to initialize stuff
>> or about better defaults for cases like ACLs. 
>
>Should probably be using VOP_EOPNOTSUPP rather than VOP_EINVAL, I think.
>Also, it's likely that if you need a vop_getacl entry here, you probably
>also want a vop_setacl and a vop_checkacl entry.
>
>Robert N M Watson             FreeBSD Core Team, TrustedBSD Projects
>robert_at_fledge.watson.org      Principal Research Scientist, McAfee Research
>
>
>> 
>> Mark
>> 
>> ==== //depot/projects/custom/kern/vfs_default.c#35 - /home/marks/proj/perforce/projects/custom/kern/vfs_default.c ====
>> _at__at_ -95,6 +95,7 _at__at_
>>  	.vop_revoke =		VOP_PANIC,
>>  	.vop_strategy =		vop_nostrategy,
>>  	.vop_unlock =		vop_stdunlock,
>> +	.vop_getacl =		VOP_EINVAL,
>>  };
>>  
>>  /*
>> 
>> -- 
>> RIPE NCC - Delft University of Technology - The FreeBSD Project
> marks_at_ripe.net - m.a.santcroos_at_ewi.tudelft.nl - marks_at_freebsd.org
>> _______________________________________________
>> freebsd-current_at_freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/freebsd-current
>> To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd.org"
>> 
>

-- 
Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20
phk_at_FreeBSD.ORG         | TCP/IP since RFC 956
FreeBSD committer       | BSD since 4.3-tahoe    
Never attribute to malice what can adequately be explained by incompetence.
Received on Fri Dec 03 2004 - 06:07:18 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:23 UTC