CVSROOT:        /cvs
Module name:    src
Changes by:     [email protected]   2026/07/14 06:27:17

Modified files:
        sys/nfs        : Tag: OPENBSD_7_9 nfs_serv.c nfs_socket.c 
                         nfs_srvsubs.c nfs_subs.c nfs_var.h nfs_vfsops.c 
                         nfs_vnops.c nfsm_subs.h 

Log message:
cleanup when nfsm_srvmtofh1() errors in nfsrv_rename()
corrects vnode references and namei_pool leak
reported by Andrew Griffiths of Calif
from jsg@; initial diff from deraadt@ ok miod@

remove use of struct nfsm_info in nfs_serv.c (the non-trivial part)
from jsg@; with and ok miod@

remove use of struct nfsm_info in nfs_serv.c
from jsg@; with and ok miod@

convert nfs_serv.c from nfsm_mtouio() to nfsd_mtouio()
from jsg@; with and ok miod@

convert nfs_serv.c from nfsm_strsiz() to nfsd_strsiz()
from jsg@; with and ok miod@

convert nfs_serv.c from nfsm_dissect() to nfsd_dissect()
from jsg@; with and ok miod@

remove nfsm_info argument from nfsm_srvmtofh1()
from jsg@; with and ok miod@

remove nfsm_info argument from nfsm_reply()
callers all set info.nmi_mreq = NULL
from jsg@; with and ok miod@

make nfsm_srvnamesiz() take an nfsrv_descript argument
from jsg@; with and ok miod@

make nfsm_srvmtofh2() take an nfsrv_descript argument
from jsg@; with and ok miod@

make nfsm_srvsattr() take an nfsrv_descript argument
from jsg@; with and ok miod@

remove nmi_mb from struct nfsm_info
from jsg@; ok miod@

make nfsm_srvmtofh1() take an mbuf argument
from jsg@; ok miod@

make nfsm_srvwcc() take an mbuf argument
from jsg@; ok miod@

make nfsm_srvpostop_fh() take an mbuf argument
from jsg@; ok miod@

make nfsm_srvpostop_attr() take an mbuf argument
from jsg@; ok miod@

make nfsm_reply() take an mbuf argument
from jsg@; ok miod@

switch nfs_getreq() to nfsd_adv()

from miod@ ok jsg@

This round of commits was prompted by a double-free report
from Andrew Griffiths at Calif.
server nfs request mbuf pointers were stored in two structs:
nmi_mrep in struct nfsm_info
nd_mrep in struct nfsrv_descript
but only set to NULL after m_freem() in nmi_mrep
This problem is avoided by removing the use of struct nfsm_info
in the server paths and passing struct nfsrv_descript to
new versions of the nfsm functions.
from jsg@

convert nfs_socket.c from nfsm_dissect() to nfsd_dissect()
from jsg@; with and ok miod@

make nfsm_srvsattr() take an nfsrv_descript argument
from jsg@; with and ok miod@

make nfsm_srvwcc() take an mbuf argument
from jsg@; ok miod@

make nfsm_srvpostop_attr() take an mbuf argument
from jsg@; ok miod@

make nfsm_fhtom() take an mbuf argument
from jsg@; ok miod@

make nfsm_srvsattr() take an nfsrv_descript argument
from jsg@; with and ok miod@

make nfsm_srvwcc() take an mbuf argument
from jsg@; ok miod@

make nfsm_fhtom() take an mbuf argument
from jsg@; ok miod@

make nfsm_srvpostop_attr() take an mbuf argument
from jsg@; ok miod@

remove nmi_mb from struct nfsm_info
from jsg@; ok miod@

make nfsm_fhtom() take an mbuf argument
from jsg@; ok miod@

in nfs_writerpc() error from server would leak an mbuf
reported by Andrew Griffiths of Calif
from jsg@; initial diff from deraadt@ ok miod@

remove nmi_mb from struct nfsm_info
from jsg@; ok miod@

make nfsm_fhtom() take an mbuf argument
from jsg@; ok miod@

make nfsm_strtom() take an mbuf argument
from jsg@; ok miod@

add nfsrv_descript versions of nfsm functions
from jsg@; ok miod@

remove nmi_mb from struct nfsm_info
from jsg@; ok miod@

make nfsm_strtom() take an mbuf argument
from jsg@; ok miod@

this is errata/7.9/006_nfs.patch.sig

Reply via email to