Subject: CVS commit: src/sys
To: None <source-changes@NetBSD.org>
From: YAMAMOTO Takashi <yamt@netbsd.org>
List: source-changes
Date: 09/24/2003 10:22:54
Module Name:	src
Committed By:	yamt
Date:		Wed Sep 24 10:22:54 UTC 2003

Modified Files:
	src/sys/miscfs/genfs: genfs_node.h genfs_vnops.c
	src/sys/ufs/lfs: lfs_vnops.c

Log Message:
fix a bug of lfs.

genfs_getpages() can read in more blocks than it should due to faked filesize
of lfs_gop_size().  it's a security problem and it makes gcc3 "internal error"

to fix this,
- in genfs_getpages(), always calculate diskeof and memeof separately
  so that filesystems (in this case, lfs) can use different strategies
  for them.
- introduce GOP_SIZE_MEM flag and use it to request in-core filesize.
  (it was an intention of GOP_SIZE_READ,
  but after the above change _READ is not a straightforward name)

after this, no one uses GOP_SIZE_{READ,WRITE} anymore but leave them for now.


To generate a diff of this commit:
cvs rdiff -r1.4 -r1.5 src/sys/miscfs/genfs/genfs_node.h
cvs rdiff -r1.81 -r1.82 src/sys/miscfs/genfs/genfs_vnops.c
cvs rdiff -r1.117 -r1.118 src/sys/ufs/lfs/lfs_vnops.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.