Date: Wed, 15 Oct 2008 14:32:43 +0000 (UTC) From: Alexander Leidinger <netchild@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r183914 - in user/netchild/coverity/src/sys: nfsclient nfsserver Message-ID: <200810151432.m9FEWhUr035909@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: netchild Date: Wed Oct 15 14:32:43 2008 New Revision: 183914 URL: http://svn.freebsd.org/changeset/base/183914 Log: Fixes (probably) for CID 1076 and 1528. Found by: Coverity Prevent Modified: user/netchild/coverity/src/sys/nfsclient/nfs_subs.c user/netchild/coverity/src/sys/nfsserver/nfs_serv.c Modified: user/netchild/coverity/src/sys/nfsclient/nfs_subs.c ============================================================================== --- user/netchild/coverity/src/sys/nfsclient/nfs_subs.c Wed Oct 15 14:29:35 2008 (r183913) +++ user/netchild/coverity/src/sys/nfsclient/nfs_subs.c Wed Oct 15 14:32:43 2008 (r183914) @@ -980,8 +980,12 @@ nfsm_mtofh_xx(struct vnode *d, struct vn return EBADRPC; if (*f) *f = fxdr_unsigned(int, *tl); - else if (fxdr_unsigned(int, *tl)) - nfsm_adv_xx(NFSX_V3FATTR, md, dpos); + else if (fxdr_unsigned(int, *tl)) { + /* XXX: CID 1076, NFSM_ADV() can be used instead too */ + t1 = nfsm_adv_xx(NFSX_V3FATTR, md, dpos); + if (t1 != 0) + return EBADRPC; + } } if (*f) { ttvp = *v; Modified: user/netchild/coverity/src/sys/nfsserver/nfs_serv.c ============================================================================== --- user/netchild/coverity/src/sys/nfsserver/nfs_serv.c Wed Oct 15 14:29:35 2008 (r183913) +++ user/netchild/coverity/src/sys/nfsserver/nfs_serv.c Wed Oct 15 14:32:43 2008 (r183914) @@ -4062,7 +4062,14 @@ nfsrv_fsinfo(struct nfsrv_descript *nfsd } /* XXX Try to make a guess on the max file size. */ - VFS_STATFS(vp->v_mount, &sb, curthread); + error = VFS_STATFS(vp->v_mount, &sb, curthread); + if (error) { + /* XXX: CID 1528 */ + nfsm_reply(NFSX_UNSIGNED); + nfsm_srvpostop_attr(getret, &at); + error = 0; + goto nfsmout; + } maxfsize = (u_quad_t)0x80000000 * sb.f_bsize - 1; getret = VOP_GETATTR(vp, &at, cred);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200810151432.m9FEWhUr035909>