svn commit: r183914 - in user/netchild/coverity/src/sys: nfsclient
nfsserver
Alexander Leidinger
netchild at FreeBSD.org
Wed Oct 15 14:32:43 UTC 2008
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);
More information about the svn-src-user
mailing list