Source-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: src/sys/compat



Module Name:    src
Committed By:   he
Date:           Wed Mar  3 08:20:39 UTC 2010

Modified Files:
        src/sys/compat/common: vfs_syscalls_30.c
        src/sys/compat/ibcs2: ibcs2_misc.c
        src/sys/compat/irix: irix_dirent.c
        src/sys/compat/linux/common: linux_file64.c linux_misc.c
        src/sys/compat/linux32/common: linux32_dirent.c
        src/sys/compat/osf1: osf1_file.c
        src/sys/compat/sunos: sunos_misc.c
        src/sys/compat/sunos32: sunos32_misc.c
        src/sys/compat/svr4: svr4_misc.c
        src/sys/compat/svr4_32: svr4_32_misc.c

Log Message:
When implementing "read directory", when there are too many empty entries
in a row, and we need to try to read the next block, and have passed a
non-NULL cookie pointer to VOP_READDIR, ensure that we free the cookie
buffer before re-doing VOP_READDIR, so that we don't leak memory.
This fix is similar to nfs_serv.c revisions 1.115 + 1.124.

This should fix the long-standing problem observed by e.g. using Linux-
emulated programs to take backup of servers, which is one of the problems
which were reported in PR#42661.

Thanks to pooka@ for the hints for traversing the VOP* layer.


To generate a diff of this commit:
cvs rdiff -u -r1.30 -r1.31 src/sys/compat/common/vfs_syscalls_30.c
cvs rdiff -u -r1.109 -r1.110 src/sys/compat/ibcs2/ibcs2_misc.c
cvs rdiff -u -r1.23 -r1.24 src/sys/compat/irix/irix_dirent.c
cvs rdiff -u -r1.49 -r1.50 src/sys/compat/linux/common/linux_file64.c
cvs rdiff -u -r1.213 -r1.214 src/sys/compat/linux/common/linux_misc.c
cvs rdiff -u -r1.9 -r1.10 src/sys/compat/linux32/common/linux32_dirent.c
cvs rdiff -u -r1.37 -r1.38 src/sys/compat/osf1/osf1_file.c
cvs rdiff -u -r1.165 -r1.166 src/sys/compat/sunos/sunos_misc.c
cvs rdiff -u -r1.68 -r1.69 src/sys/compat/sunos32/sunos32_misc.c
cvs rdiff -u -r1.148 -r1.149 src/sys/compat/svr4/svr4_misc.c
cvs rdiff -u -r1.67 -r1.68 src/sys/compat/svr4_32/svr4_32_misc.c

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



Home | Main Index | Thread Index | Old Index